jeroen/simple-geocoder

简单且极简的地理编码器接口,包含一些基本实现

1.3.1 2020-08-19 15:49 UTC

README

GitHub Workflow Status Latest Stable Version Download count

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

适配器

简单实现(非常适合测试)

  • 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 的地理编码器: GeoNamesGeocoderGoogleGeocoderNomatimGeocoder
  • 简单实现: InMemoryGeocoderNullGeocoderStubGeocoder
  • 装饰器: CoordinateFriendlyGeocoder