nubs/协调器

一个通用的地理库。

v0.1.0 2014-02-23 03:53 UTC

This package is auto-updated.

Last update: 2024-09-12 21:31:25 UTC


README

一个通用的PHP地理库。

Build Status Scrutinizer Code Quality Code Coverage

Latest Stable Version Total Downloads Latest Unstable Version License

Dependency Status

安装

此包使用 composer,因此您只需将 nubs/coordinator 添加到您的 composer.json 文件中的依赖项或执行以下命令

composer require nubs/coordinator

用法

坐标

坐标是一个纬度/经度对。它们使用弧度创建,尽管下面的 CoordinateFactory 和各种 CoordinateSystem 可以帮助创建它们。

创建坐标

使用构造函数,您可以使用弧度创建坐标。

<?php
use Nubs\Coordinator\Coordinate;

$coordinate = new Coordinate($latitudeInRadians, $longitudeInRadians);
使用坐标工厂

使用 CoordinateFactory,您可以以类似的方式创建坐标。

<?php
use Nubs\Coordinator\CoordinateFactory;

$coordinateFactory = new CoordinateFactory();
$coordinate = $coordinateFactory->createFromRadians(
    $latitudeInRadians,
    $longitudeInRadians
);

然而,CoordinateFactory 还可以从指定的度数中的纬度和经度创建坐标。

<?php
use Nubs\Coordinator\CoordinateFactory;

$coordinateFactory = new CoordinateFactory();
$coordinate = $coordinateFactory->createFromDegrees(
    $latitudeInDegrees,
    $longitudeInDegrees
);

访问坐标数据

可以从 Coordinate 中提取弧度中的纬度和经度。

echo "Latitude: {$coordinate->latitudeInRadians()}\n";
echo "Longitude: {$coordinate->longitudeInRadians()}\n";

纬度和经度也可以在度数中提取。

echo "Latitude: {$coordinate->latitudeInDegrees()}\n";
echo "Longitude: {$coordinate->longitudeInDegrees()}\n";

还有一个返回度数坐标的 __toString() 助手。

echo (string)$coordinate;

坐标系统

坐标系统帮助将坐标从其他系统/投影转换为标准纬度/经度。目前定义了 Mercator 投影。

坐标系统在给定的 Spheroid 上操作,并定义了一个 Earth 球体。

转换坐标

可以在坐标系统中将坐标转换为度数/弧度。

<?php
use Nubs\Coordinator\CoordinateFactory;
use Nubs\Coordinator\CoordinateSystem\Mercator;
use Nubs\Coordinator\Spheroid\Earth;

$mercator = new Mercator(new Earth(), new CoordinateFactory());
$coordinate = $mercator->loadCoordinate($xCoordinate, $yCoordinate);
echo (string)$coordinate;

许可

协调器根据MIT许可证授权。有关完整许可证文本,请参阅 LICENSE