一个 PHP 工具包,用于解决与地理相关的任务,例如: 距离计算、标题、中点和终点的计算、矩形包围盒计算。
一个Distance实例允许方便地表示距离单位。
use Geokit\Distance;
$distance = new Distance(1000); // Defaults to meters
// or
$distance = new Distance(1, Distance::UNIT_KILOMETERS);
$meters = $distance->meters();
$kilometers = $distance->kilometers();
$miles = $distance->miles();
$yards = $distance->yards();
$feet = $distance->feet();
$inches = $distance->inches();
$nauticalMiles = $distance->nautical();
距离也可以从带有可选单位的字符串创建。
use Geokit\Distance;
$distance = Distance::fromString('1000'); // Defaults to meters
$distance = Distance::fromString('1000m');
$distance = Distance::fromString('1km');
$distance = Distance::fromString('100 miles');
$distance = Distance::fromString('100 yards');
$distance = Distance::fromString('1 foot');
$distance = Distance::fromString('1 inch');
$distance = Distance::fromString('234nm');
A Position
是一个基本的构造,代表在 x
(或 longitude
) 和 y
(或 latitude
) 坐标中的地理位置。
注意,x
/y
坐标保持不变,而 longitude
/latitude
坐标会被 标准化。
- 经度范围在-180到180度之间,包括-180和180度。经度超过180度或低于-180度都会被标准化。例如,480、840和1200都会被标准化为120度。
- 纬度范围在-90到90度之间,包括-90和90度。纬度超过90或低于-90会被标准化。例如,100将被标准化为80度。
use Geokit\Position;
$position = new Position(181, 91);
$x = $position->x(); // Returns 181.0
$y = $position->y(); // Returns 91.0
$longitude = $position->longitude(); // Returns -179.0, normalized
$latitude = $position->latitude(); // Returns 89.0, normalized
一个 BoundingBox 实例代表一个地理坐标系中的矩形,包括跨越180度经线的矩形。
它是从其左下(西南)和右上(东北)角点构建的。
use Geokit\BoundingBox;
use Geokit\Position;
$southWest = Position::fromXY(2, 1);
$northEast = Position::fromXY(2, 1);
$boundingBox = BoundingBox::fromCornerPositions($southWest, $northEast);
$southWestPosition = $boundingBox->southWest();
$northEastPosition = $boundingBox->northEast();
$center = $boundingBox->center();
$span = $boundingBox->span();
$boolean = $boundingBox->contains($position);
$newBoundingBox = $boundingBox->extend($position);
$newBoundingBox = $boundingBox->union($otherBoundingBox);
更多使用:插件介绍
1.0.0 2025-09-27 >= HkCms_2.3.0
发布了第一个版本
博文
问答
相关应用
推荐应用