cedarmaps / cedarmaps-php-sdk
CedarMaps API 的 PHP 封装器
Requires
- php: >=5.6.0
- guzzlehttp/guzzle: ^6.3
- monolog/monolog: 1.*
Requires (Dev)
- phpdocumentor/phpdocumentor: 2.*
- phpunit/phpunit: 4.*
- sebastian/phpcpd: 2.*
This package is auto-updated.
Last update: 2024-09-26 04:43:55 UTC
README
一个覆盖伊朗全国的高精度GIS矢量数据应用,包括地图服务和详细的空间信息。
安装
$ composer require cedarmaps/cedarmaps-php-sdk
入门指南
获取访问令牌
为了获取访问令牌,您需要有 client_id
和 client_secret
。
POST "https://api.cedarmaps.com/v1/token" with client_id=<client_id> client_secret=<client_secret>
$apiKey = 'YOUR_API_KEY' $cedarMaps = new \CedarMaps\CedarMaps($apiKey);
API
#getForwardGeocoding(query, index, filters)
输入
query: string
,URL编码文本 [必填]
index:从 CedarMaps::Constants['INDEXES'] 中选择,例如 CedarMaps::Constants['INDEXES']['STREET_INDEX']
过滤器
示例响应
[ [ "address" => "اراضی عباس آباد,مهران,سید خندان,...", "components" => [ "city" => "تهران", "country" => "ایران", "districts" => [ "منطقه 4", "منطقه 3" ], "localities" => [ "اراضی عباس آباد", "مهران", "سید خندان", "پاسداران" ], "province" => "تهران" ], "id" => 429874, "location" => [ "bb" => [ "ne" => "35.756689799999997,51.464761500000002", "sw" => "35.7491463,51.423702800000001" ], "center" => "35.749155599171999,51.428327751596903" ], "name" => "همت", "type" => "expressway" ], [ "address" => "المهدی", "components" => [ "city" => "تهران", "country" => "ایران", "districts" => [ "منطقه 5" ], "localities" => [ "المهدی" ], "province" => "تهران" ], "id" => 338756, "location" => [ "bb" => [ "ne" => "35.770861600000003,51.323841700000003", "sw" => "35.770540400000002,51.323066400000002" ], "center" => "35.770585227006897,51.323426168064202" ], "name" => "همت", "type" => "street" ] ]
#getReverseGeocoding(lat, lon, index)
基于提供的经纬度对提供地址。
输入
lat: number
,纬度 [必填]
long: number
,经度 [必填]
index:从 CedarMaps::Constants['INDEXES'] 中选择,例如 CedarMaps::Constants['INDEXES']['STREET_INDEX']
示例响应
[ "address" => "بن بست سروش - زرتشت", "city" => "تهران", "components" => [ [ "long_name" => "بن بست سروش", "short_name" => "بن بست سروش", "type" => "residential" ], [ "long_name" => "زرتشت", "short_name" => "زرتشت", "type" => "primary" ], [ "long_name" => "بهجت آباد", "short_name" => "بهجت آباد", "type" => "locality" ], [ "long_name" => "منطقه 6", "short_name" => "منطقه 6", "type" => "district" ], [ "long_name" => "تهران", "short_name" => "تهران", "type" => "city" ] ], "locality" => "بهجت آباد", "district" => "منطقه 6", "traffic_zone" => [ "in_central" => true, "in_evenodd" => true, "name" => "محدوده طرح ترافیک" ] ]
#getDistance(points)
此方法计算点之间的距离(米)。可以单次请求中调用最多100个不同的点。
输入
points: array
,点数组数组 ['lat' => <SOME_LATITUDE>,'lon' => SOME_LONGITUDE]
[必填]
响应元素
示例响应
[ "routes" => [ [ "bbox" => [ 51.368587, 35.74982, 51.41652, 35.762383 ], "distance" => 7516.338, "time" => 500912 ] ] ]
#getDirection(points, options)
此方法计算两个或多个点之间的最优驾驶路线。
输入
points: Array
,Array: ['lat' => <SOME_LATITUDE>,'lon' => SOME_LONGITUDE]
[必填]
options:选项数组,如 ['instructions' => true] 目前唯一的选项是 instructions
,它是一个 boolean
示例
[ 'instructions' => true ]
响应元素
示例响应
[ "routes" => [ [ "bbox" => [ 51.36444, 35.76323, 51.365623, 35.76432 ], "distance" => 244.929, "geometry" => [ "coordinates" => [ [ 51.365623, 35.76432 ], [ 51.365257, 35.764303 ], [ 51.364963, 35.764235 ], [ 51.364673, 35.764141 ], [ 51.364442, 35.764025 ], [ 51.364884, 35.763525 ], [ 51.364888, 35.763482 ], [ 51.365049, 35.763228 ], [ 51.36532, 35.76332 ] ], "type" => "LineString" ], "time" => 22602 ] ] ]
逐段导航
为了获取逐段指令,您应将 {instructions:true} 包含在选项中。
提供指令选项时的响应元素
提供指令选项时的示例响应
[ "routes" => [ [ "bbox" => [ 51.43418, 35.738007, 51.43793, 35.738693 ], "distance" => 570.586, "geometry" => [ "coordinates" => [ [ 51.437536, 35.738675 ], [ 51.437901, 35.738695 ], [ 51.43793, 35.738142 ], [ 51.435609, 35.738006 ], [ 51.435563, 35.738689 ], [ 51.434183, 35.738635 ], [ 51.434204, 35.738048 ] ], "type" => "LineString" ], "instructions" => [ [ "distance" => 32.977, "heading" => 86.21, "interval" => [ 0, 1 ], "sign" => 0, "street_name" => "دهم", "text" => "تا دهم ادامه دهید", "time" => 4748 ], [ "distance" => 61.447, "interval" => [ 1, 2 ], "sign" => 2, "street_name" => "سیبویه", "text" => " به راست بپیچید به سیبویه", "time" => 4915 ], [ "distance" => 210.041, "interval" => [ 2, 3 ], "sign" => 2, "street_name" => "هشتم", "text" => " به راست بپیچید به هشتم", "time" => 30245 ], [ "distance" => 76.09, "interval" => [ 3, 4 ], "sign" => 2, "street_name" => "عربعلی", "text" => " به راست بپیچید به عربعلی", "time" => 6085 ], [ "distance" => 124.698, "interval" => [ 4, 5 ], "sign" => -2, "street_name" => "نهم", "text" => " به چپ بپیچید به نهم", "time" => 17956 ], [ "distance" => 65.334, "interval" => [ 5, 6 ], "sign" => -2, "street_name" => "رهبر", "text" => " به چپ بپیچید به رهبر", "time" => 9408 ], [ "distance" => 0.0, "interval" => [ 6, 6 ], "last_heading" => 178.3159250006148, "sign" => 4, "street_name" => "", "text" => "پایان!", "time" => 0 ] ], "time" => 73357 ] ] ]
#getTileJson(mapId)
TileJSON 是一种管理自定义地图复杂性的格式。它组织缩放级别、中心点、图例内容等,使其易于显示地图。
输入
mapId: string
,Cedar 地图 ID [必填]
示例响应
[ "bounds" => [ 44, 24.6, 63.4, 39.8 ], "description" => "CedarMaps covering the whole country of Iran", "maxzoom" => 17, "minzoom" => 6, "name" => "CedarMaps Streets", "tilejson" => "2.3.0", "tiles" => [ "https =>//api.cedarmaps.com/v1/tiles/cedarmaps.streets/[z]/[x]/[y].png?access_token=<your access token>" ], "version" => "2.0" ]
常量
[ 'INDEXES' => [ 'STREET_INDEX' => 'cedarmaps.streets', ], 'FORWARD_GEOCODE' => [ 'TYPE' => [ 'LOCALITY' => 'locality', 'ROUNDABOUT' => 'roundabout', 'STREET' => 'street', 'FREEWAY' => 'freeway', 'EXPRESSWAY' => 'expressway', 'BOULEVARD' => 'boulevard', ] ], ];
许可证
MIT © Cedar Maps