assghard/php-geocoders

PHP项目地理编码库

0.2.2 2023-04-26 11:00 UTC

This package is auto-updated.

Last update: 2024-09-26 14:41:47 UTC


README

一个简单的PHP库,它提供了使用不同的提供者(如Nominatim(OpenStreetMap)、Google等)的地理编码和反向地理编码功能。通过坐标获取地址,通过地址获取坐标

要求

  • PHP >= 8.0
  • PHP cURL

安装

安装最新版本(适用于PHP 8+)

composer require assghard/php-geocoders

对于较旧版本的PHP

如果您使用PHP 7+:composer require assghard/php-geocoders:dev-php7

如果您使用PHP 5.6:composer require assghard/php-geocoders:dev-php56

用法

Nominatim地理编码器

在uses部分添加GeocodingServiceNominatimGeocoderProvider

use Assghard\PhpGeocoders\GeocodingService;
use Assghard\PhpGeocoders\Providers\NominatimGeocoderProvider;
$geocoder = new NominatimGeocoderProvider();
$geocodingService = new GeocodingService($geocoder);

// Get coordinates by address
$geocodeData = $geocodingService->geocode($addressAsString);

// Get address by coordinates
$reverseData = $geocodingService->reverse($latitude, $longitude);

您也可以向地理编码器提供者提供国家代码/代码

$geocoder = new NominatimGeocoderProvider('en');

多个国家代码

$geocoder = new NominatimGeocoderProvider(['en', 'pl']);

Google地理编码器

use Assghard\PhpGeocoders\GeocodingService;
use Assghard\PhpGeocoders\Providers\GoogleGeocoderProvider;

...

$geocoder = new GoogleGeocoderProvider('GOOGLE_MAPS_API_KEY', 'en');
/**
 * "en" - English language code. See Google documentation: https://developers.google.com/admin-sdk/directory/v1/languages
 * 
 * Google Maps javascript API documentation: https://developers.google.com/maps/documentation/javascript/overview
 */
$geocodingService = new GeocodingService($geocoder);
$geocodeData = $geocodingService->geocode($addressAsString); // Get coordinates by address
$reverseData = $geocodingService->reverse($latitude, $longitude); // Get address by coordinates

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件