간단하지만 강력한 PHP 용 Geo 라이브러리
본문
phpgeo는 지리적 좌표 (다양한 타원체에 대한 지원 포함), 폴리 라인 ( "GPS 트랙"), 폴리곤, 경계 등에 대한 추상화를 제공하는 작은 PHP 라이브러리입니다.
phpgeo를 사용하면 이러한 추상화를 통해 거리, 트랙 길이 등과 같은 다양한 계산을 수행 할 수 있습니다.
https://phpgeo.marcusjaschen.de/
https://github.com/mjaschen/phpgeo
요구 사항
phpgeo에는 최소한 PHP 7.2가 필요합니다.
설치
phpgeo는 Composer를 사용하여 설치하는 것이 가장 좋습니다. 자세한 내용은 Composer 웹 사이트를 방문하십시오.
phpgeo를 설치하려면 Composer를 사용하여 "요구"하십시오.
composer require mjaschen/phpgeo
이제 phpgeo를 프로젝트에서 사용할 준비가 되었습니다!
테스트 실행
phpgeo는 꽤 좋은 범위의 단위 테스트를 제공합니다. 쉽게 사용할 수 있도록 test 명령은 Composer 스크립트로 래핑됩니다.
composer ci:tests
물론 PHPUnit을 직접 실행할 수도 있습니다.
./vendor/bin/phpunit
다른 PHP 버전에 대해 테스트하려면 Docker를 사용할 수 있습니다. 다음 명령은 PHP 7.2를 사용하여 테스트를 실행합니다.
docker run -it --rm --name phpgeo-phpunit \ -v "$PWD":/usr/src/phpgeo \ -w /usr/src/phpgeo php:7.2-cli \ php vendor/bin/phpunit
<?php use Location\Coordinate; use Location\Distance\Vincenty; $coordinate1 = new Coordinate(19.820664, -155.468066); // Mauna Kea Summit $coordinate2 = new Coordinate(20.709722, -156.253333); // Haleakala Summit $calculator = new Vincenty(); echo $calculator->getDistance($coordinate1, $coordinate2); // returns 128130.850 (meters; ≈128 kilometers)
<?php use Location\Coordinate; use Location\Distance\Vincenty; $coordinate1 = new Coordinate(19.820664, -155.468066); // Mauna Kea Summit $coordinate2 = new Coordinate(20.709722, -156.253333); // Haleakala Summit echo $coordinate1->getDistance($coordinate2, new Vincenty()); // returns 128130.850 (meters; ≈128 kilometers)
<?php use Location\Coordinate; use Location\Polyline; use Location\Distance\Vincenty; $polyline = new Polyline(); $polyline->addPoint(new Coordinate(10.0, 10.0)); $polyline->addPoint(new Coordinate(20.0, 20.0)); $polyline->addPoint(new Coordinate(30.0, 10.0)); $processor = new Simplify($polyline); // remove all points which perpendicular distance is less // than 1500 km from the surrounding points. $simplified = $processor->simplify(1500000); // simplified is the polyline without the second point (which // perpendicular distance is ~1046 km and therefore below // the simplification threshold)
- 이전글OverblogGraphQLBundle 20.11.06
- 다음글laminas-cache 20.11.06