perfacilis / geocoder
使用 Google Maps API 的简单地理编码器,带有缓存
0.2.2
2021-07-06 12:52 UTC
Requires
- psr/simple-cache: ^1.0
This package is auto-updated.
Last update: 2024-09-28 17:33:20 UTC
README
使用 PSR SimpleCache 接口来存储查询结果。
这是一个独立的库,不依赖于 Laravel 或其他框架,使其尽可能简单和轻量级,但请放心,它与 Laravel 一样可以很好地工作 :)
安装
composer require perfacilis/geocoder
用法
获取 Google Maps API 密钥
查看: https://console.cloud.google.com/apis/credentials
创建一个新的 API 密钥,确保:
- 仅将其限制在您的 IP(s) 上;
- 仅允许使用地理编码 API。
如果您正在使用 Google Maps JS API,您可能需要创建一个不同的密钥,因为该密钥应仅限于 HTTP 引用(网站)。
简单示例
$api_key = '123foo456bar'; $geocoder = new Perfacilis\Geocoder\Geocoder($api_key); $result = $geocoder->geocode('Street 12, 1234AB, Residence, Country'); $lat = $result->getLat(); $lng = $result->getLng();
启用缓存
由于 Google 的地理编码 API 是按使用付费的,因此建议您使用 PSR 的 SimpleCache 接口实现自己的缓存器
$api_key = '123foo456bar'; $cacher = new GeocoderCache(); $geocoder = new Perfacilis\Geocoder\Geocoder($api_key); $geocoder->setCacheInterface($cacher); $result = $geocoder->query(...);
您可以手动创建一个缓存器,将结果存储在简单的数据库中
class GeocoderCache implements Psr\SimpleCache\CacheInterface { ... }