perfacilis/geocoder

使用 Google Maps API 的简单地理编码器,带有缓存

0.2.2 2021-07-06 12:52 UTC

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 密钥,确保:

  1. 仅将其限制在您的 IP(s) 上;
  2. 仅允许使用地理编码 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
{
   ...
}