ayeo/geo

计算两个坐标之间的距离

1.0.0 2015-04-25 20:52 UTC

This package is auto-updated.

Last update: 2024-09-18 07:16:23 UTC


README

Build Status

地理距离

简单地计算两个地理坐标之间的距离。这里使用了Vincenty公式来进行计算。

使用Composer安装

require: "ayeo/geo": "1.0.*"

示例用法

use Ayeo\Geo\Coordinate;
use Ayeo\Geo\DistanceCalculator;

//London: 51°30′N 0°07′W
$london = new Coordinate\Degree();
$london->setLatitude(51, 30, 00, 'N');
$london->setLongitude(00, 07, 00, 'W');

//Buenos Aires: 34°35′S 58°55′W
$buenosAires = new Coordinate\Degree();
$buenosAires->setLatitude(34, 35, 00, 'S');
$buenosAires->setLongitude(58, 55, 00, 'W');

$calculator = new DistanceCalculator();
$calculator->getDistance($london, $buenosAires); //result in meters

您还可以使用十进制坐标

$example = new Coordinate\Decimal(53.2311, 18.1222);

DistanceCalculator允许设置半径、精度和乘数。默认半径设置为地球。

$calculator = new DistanceCalculator();

$calculator->setMultiplier(1); //default value, returns distance in meters
$calculator->setMultiplier(1/1000); //kilometers
$calculator->setMultiplier(1/1000000); //thousands of kilometers

$calculator->setRadius(1737100); //Moon radius :)

$calculator->setPrecision(0); //returns integers