jeroen / simple-geocoder
简单且极简的地理编码器接口,包含一些基本实现
1.3.1
2020-08-19 15:49 UTC
Requires
- php: >=7.0
- data-values/geo: ~4.0|~3.0|~2.0
- jeroen/file-fetcher: ~6.0|~5.0|~4.0
- willdurand/geocoder: ~4.1
Requires (Dev)
- geocoder-php/google-maps-provider: ~4.1
- guzzlehttp/psr7: ~1.4
- mediawiki/mediawiki-codesniffer: ~31.0
- ockcyp/covers-validator: ~1.2
- php-http/mock-client: ~1.0
- phpstan/phpstan: ^0.12.29
- phpunit/phpunit: ~6.2
- slevomat/coding-standard: ~6.0
- squizlabs/php_codesniffer: ~3.0
This package is auto-updated.
Last update: 2024-09-18 22:47:12 UTC
README
PHP 7.0+ 库,提供简单且极简的地理编码器接口和一些基本实现。
interface Geocoder { /** * Returns null when no result is found or when an error occurs. * @return LatLongValue|null */ public function geocode( string $address ); }
使用 HTTP 通过真实地理编码服务的地理编码器
GeoNamesGeocoder
GoogleGeocoder
NomatimGeocoder
适配器
GeocoderPhpAdapter
- 适配流行的 PHP Geocoder 库
简单实现(非常适合测试)
InMemoryGeocoder
NullGeocoder
StubGeocoder
装饰器
CoordinateFriendlyGeocoder
此库基于从 MediaWiki 的 Maps 扩展中提取的代码。
安装
要在项目中使用 Simple Geocoder 库,只需将 jeroen/simple-geocoder 依赖项添加到项目中的 composer.json
文件中。以下是一个只定义对 Simple Geocoder 1.x 依赖项的 composer.json
文件的示例
{ "require": { "jeroen/simple-geocoder": "~1.0" } }
开发
为了进行开发,您需要安装 Docker 和 Docker-compose。不需要本地 PHP 和 Composer。
sudo apt-get install docker docker-compose
运行 Composer
要通过 Composer 拉取项目依赖项,请运行
make composer install
您可以通过 make run
运行其他 Composer 命令,但当前不支持参数标志。如果您需要以这种格式执行此类命令,可以在其中执行
docker run --rm --interactive --tty --volume $PWD:/app -w /app\
--volume ~/.composer:/composer --user $(id -u):$(id -g) composer composer install -vvv
运行 CI 检查
要运行所有 CI 检查,包括 PHPUnit 测试、PHPCS 风格检查和覆盖率标签验证,请运行
make
运行测试
要仅运行 PHPUnit 测试,请运行
make test
要仅运行 PHPUnit 测试的子集或以其他方式向 PHPUnit 传递标志,请运行
docker-compose run --rm app ./vendor/bin/phpunit --filter SomeClassNameOrFilter
发布说明
1.3.1 (2020-08-19)
- 更新了归属信息
1.3.0 (2019-01-18)
- 现在允许使用 FileFetcher 6.x 进行安装
1.2.0 (2018-07-10)
- 添加了
GeocoderPhpAdapter
,允许使用流行的 PHP Geocoder 库 - 现在允许使用 DataValues Geo 4.x 进行安装
1.1.0 (2018-03-20)
- 现在允许使用 DataValues Geo 3.x 进行安装
1.0.0 (2017-11-02)
作为独立组件的初始发布,包括
- 基于 FileFetcher 的地理编码器:
GeoNamesGeocoder
、GoogleGeocoder
、NomatimGeocoder
- 简单实现:
InMemoryGeocoder
、NullGeocoder
、StubGeocoder
- 装饰器:
CoordinateFriendlyGeocoder