creativefactoryrv/google-maps-geocoder

简单轻量级的地理编码器,使用谷歌地图平台API。可选使用PSR缓存。

1.0.3 2022-09-28 16:08 UTC

This package is auto-updated.

Last update: 2024-09-18 11:42:56 UTC


README

一个超级简单的地理编码类,使用谷歌地图平台来完成神奇的操作。
您只需获取谷歌地图平台API(https://developers.google.com/maps)。
可选地,该类可以利用PRS-6缓存实现来仅在必要时查询地图平台。

安装

composer require creativefactoryrv/google-maps-geocoder

如何使用

$geocoder = new Geocoder('XXXXXXXXX-My-Google-Maps-Platform-API-Key-XXXXXXXXX', 'en');
$location = $geocoder->query('Duomo, Milano, Italy');
$latLng = $location->getCoordinates();
echo 'Lat: ' . $latLng['lat'] . ' / Lng: ' . $latLng['lng'];
echo 'ZIP code: ' . $location->getPostalCode();

获取JSON

直接返回谷歌地图平台API的响应(JSON)。

$geocoder = new Geocoder('XXXXXXXXX-My-Google-Maps-Platform-API-Key-XXXXXXXXX', 'en');
$location = $geocoder->query('Duomo, Milano, Italy');
$myJSONString = $location->getRaw();

获取数组

以关联数组的形式返回谷歌地图平台API的响应。

$geocoder = new Geocoder('XXXXXXXXX-My-Google-Maps-Platform-API-Key-XXXXXXXXX', 'en');
$location = $geocoder->query('Duomo, Milano, Italy');
$myArray = $location->toArray();

获取纬度和经度

返回包含所需值的数组。

$geocoder = new Geocoder('XXXXXXXXX-My-Google-Maps-Platform-API-Key-XXXXXXXXX', 'en');
$location = $geocoder->query('Duomo, Milano, Italy');
$myArray = $location->getCoordinates();

国家

返回国家值。

$geocoder = new Geocoder('XXXXXXXXX-My-Google-Maps-Platform-API-Key-XXXXXXXXX', 'en');
$location = $geocoder->query('Duomo, Milano, Italy');
echo $location->getCountry();

地区(城市)

返回城市或地区值。

$geocoder = new Geocoder('XXXXXXXXX-My-Google-Maps-Platform-API-Key-XXXXXXXXX', 'en');
$location = $geocoder->query('Duomo, Milano, Italy');
echo $location->getLocality();

邮政编码

返回邮政编码或邮编值。

$geocoder = new Geocoder('XXXXXXXXX-My-Google-Maps-Platform-API-Key-XXXXXXXXX', 'en');
$location = $geocoder->query('Duomo, Milano, Italy');
echo $location->getPostalCode();

路线(街道名称)

返回街道名称(谷歌称为"route")。

$geocoder = new Geocoder('XXXXXXXXX-My-Google-Maps-Platform-API-Key-XXXXXXXXX', 'en');
$location = $geocoder->query('Duomo, Milano, Italy');
echo $location->getRoute();

街道号码

返回街道号码值。

$geocoder = new Geocoder('XXXXXXXXX-My-Google-Maps-Platform-API-Key-XXXXXXXXX', 'en');
$location = $geocoder->query('Duomo, Milano, Italy');
echo $location->getStreetNumber();

行政级别1

返回行政级别1的值。

$geocoder = new Geocoder('XXXXXXXXX-My-Google-Maps-Platform-API-Key-XXXXXXXXX', 'en');
$location = $geocoder->query('Duomo, Milano, Italy');
echo $location->getAdministrativeAreaLevel1();

行政级别2

返回行政级别2的值。

$geocoder = new Geocoder('XXXXXXXXX-My-Google-Maps-Platform-API-Key-XXXXXXXXX', 'en');
$location = $geocoder->query('Duomo, Milano, Italy');
echo $location->getAdministrativeAreaLevel2();

行政级别3

返回行政级别3的值。

$geocoder = new Geocoder('XXXXXXXXX-My-Google-Maps-Platform-API-Key-XXXXXXXXX', 'en');
$location = $geocoder->query('Duomo, Milano, Italy');
echo $location->getAdministrativeAreaLevel3();

格式化地址

返回表示地址的字符串(谷歌称为"formatted_address")。

$geocoder = new Geocoder('XXXXXXXXX-My-Google-Maps-Platform-API-Key-XXXXXXXXX', 'en');
$location = $geocoder->query('Duomo, Milano, Italy');
echo $location->getFormattedAddress();

按需格式化

根据$format返回格式化地址。

  • %A1 行政区划级别1
  • %a1 行政区划级别1(简短版本)
  • %A2 行政区划级别2
  • %a2 行政区划级别2(简短版本)
  • %A3 行政区划级别3
  • %a3 行政区划级别3(简短版本)
  • %C 国家
  • %L 地区
  • %P 邮政编码
  • %R 路线
  • %N 街道号码
$geocoder = new Geocoder('XXXXXXXXX-My-Google-Maps-Platform-API-Key-XXXXXXXXX', 'en');
$location = $geocoder->query('Duomo, Milano, Italy');
$format = '%R %N, %C';
echo $location->format($format);

许可证

MIT