geocoder-php/mapquest-provider

Geocoder MapQuest 适配器

4.3.0 2022-07-30 10:48 UTC

This package is auto-updated.

Last update: 2024-09-04 10:51:31 UTC


README

Build Status Latest Stable Version Total Downloads Monthly Downloads Code Coverage Quality Score Software License

这是来自 PHP Geocoder 的 MapQuest 提供者。这是一个 只读 仓库。有关信息和文档,请参阅 主仓库

安装

composer require geocoder-php/mapquest-provider

使用更精确的地址进行地理编码

MapQuest 提供者允许您根据类 Geocoder\Model\Address 的完整地址对象或任何实现 Geocoder\Location 的对象创建和传递地理编码查询。

这将利用 MapQuest 所称的 5-box 输入地址格式。引用自 MapQuest 开发者:指定位置

5-Box 输入地址格式(与 JSON 和 XML 兼容),通过输入单个位置参数中的完整地址,允许进行更高程度的地址指定。5-Box 输入格式的好处在于它绕过了单行请求的解析功能。

如果您在变量 $address 中存储了一个实现 Geocoder\Location 的类的对象,则可以使用以下方式创建这种新的地理编码查询类型

$query = GeocodeQuery::create('foobar');
$query = $query->withData(MapQuest::DATA_KEY_ADDRESS, $address);

如果您希望 GeocodeQuery 也能与其他所有提供者良好工作,则需要将 $address 对象首先转换为文本字符串。假设您将这个文本字符串存储在变量 $addressAsString 中,则示例将如下所示

$query = GeocodeQuery::create($addressAsString);
$query = $query->withData(MapQuest::DATA_KEY_ADDRESS, $address);

以下是一个更完整的示例,包括使用语句和地址对象的构建

示例

use Geocoder\Model\AddressBuilder;
use Geocoder\Provider\MapQuest\MapQuest;
use Geocoder\Query\GeocodeQuery;

$provider = new MapQuest($httpClient, $apiKey);

$addressBuilder = new AddressBuilder('Address provided by me');
$addressBuilder
  ->setStreetNumber(4868)
  ->setStreetName('Payne Rd');
  ->setLocality('Nashville');
  ->setSubLocality('Antioch');
  ->setAdminLevels([
      new AdminLevel(1, 'Tennessee', 'TN')
  ])
  ->setPostalCode('37013');
  ->setCountry('USA');
  ->setCountryCode('US');
$address = $addressBuilder->build();

$query = GeocodeQuery::create('dummy data');
$query = $query->withData(MapQuest::DATA_KEY_ADDRESS, $address);

$results = $provider->geocodeQuery($query);

贡献

非常欢迎贡献!向 主仓库 发送拉取请求,或在任何 问题跟踪器 上报告您发现的任何问题。