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