분류 php

간단하지만 강력한 PHP 용 Geo 라이브러리

컨텐츠 정보

  • 조회 432 (작성일 )

본문

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)