monster3d / gis-calculator
简单的GIS计算器
v1.1.1.000
2019-08-03 06:22 UTC
Requires
- php: >=7.1
Requires (Dev)
- phpunit/phpunit: ^7
This package is auto-updated.
Last update: 2024-08-29 05:12:33 UTC
README
描述
简单的GIS数据计算
特性
距离
距离模块添加了计算两点之间距离的能力
使用
<?php // include a autoloader include "vendor/autoload.php"; // Use main facade $gitCalculator = new \GisCalculator\GisCalculator(); // Use simple point builder $pointA = \GisCalculator\GisCalculator::makePoint(56.836341, 60.621788); $pointB = \GisCalculator\GisCalculator::makePoint(56.827314, 60.625178); $distance = $gitCalculator->getDistance($pointA, $pointB); //** $distance float 750.8 */
警告:默认使用公制系统,单位为米
设置
如果需要更改此模块的默认设置
前往方式
// Use main facade $gitCalculator = new \GisCalculator\GisCalculator(); // Call target module by name $distance = $gitCalculator->getModule('distance'); if (null !== $distance) { //Get private setting manager $setting = $distance->getSetting(); //Add setting key 'round' value 3 $setting->setValue(\GisCalculator\Core\SettingsKeys::ROUND, 3); }
支持的设置
- 四舍五入
SettingsKeys::ROUND设置整数值 1,2,3...n - 公制
SettingsKeys::METRIC从选择Metric::CENTIMETERS或Metric::KILOMETERS设置值
GIS与
带有快速查找沿半径圆周上所需点的GIS模块的能力
使用
// Use main facade $gitCalculator = new \GisCalculator\GisCalculator(); // Create center point $center = \GisCalculator\GisCalculator::makePoint(56.830794, 60.636087); // Create search point $point = \GisCalculator\GisCalculator::makePoint(56.830160, 60.630271); // Create need search radius = 10 km $radius = \GisCalculator\GisCalculator::makeRadius(10, \GisCalculator\Core\Metric::KILOMETERS); // Search point in radius $search = $gitCalculator->gisWithPointInRadius($center, $point, $radius); if ($search) { print_r('Ok, point enters radius'); } // Can aslo use collection $center = \GisCalculator\GisCalculator::makePoint(56.830794, 60.636087); $point1 = \GisCalculator\GisCalculator::makePoint(56.830160, 60.630271); $point2 = \GisCalculator\GisCalculator::makePoint(56.826579, 60.637781); $point3 = \GisCalculator\GisCalculator::makePoint(56.662034, 60.434503); // Create collection $pointCollection = new \GisCalculator\Element\CollectionPoints(); $pointCollection ->setPoint($point1) ->setPoint($point2) ->setPoint($point3); // Radius can use any metrict km, cm and etc... $radius = \GisCalculator\GisCalculator::makeRadius(10, \GisCalculator\Core\Metric::KILOMETERS); $searchPoints = $gitCalculator->gisWithCollectionInRadius($center, $radius, $pointCollection); foreach($searchPoints as $point) { // Give all points that were found in radius }
相交
相交模块可以轻松确定两条线是否相交
使用
// Use main facade $gitCalculator = new \GisCalculator\GisCalculator(); // Create point A as from $pointA1 = \GisCalculator\GisCalculator::makePoint(56.830794, 60.636087); // Create point A as to $pointA2 = \GisCalculator\GisCalculator::makePoint(56.830794, 60.636087); // Create point B as from $pointB1 = \GisCalculator\GisCalculator::makePoint(56.830794, 60.636087); // Create point B as to $pointB2 = \GisCalculator\GisCalculator::makePoint(56.830794, 60.636087); // Run main facade method $intersect = $gisCalculator->findGisPointIntersection($pointA1, $pointA2, $pointB1, $pointB2); if (null !== $intersect) { // This point where there was an intersection or null }
使用Composer安装此包
通过Composer安装此包。编辑您的项目composer.json文件以要求monster3d/gis-calculator
composer.json
{
"name": "yourproject/yourproject",
"type": "project",
"require": {
"monster3d/gis-calculator": "*"
}
}
或命令行
composer require monster3d/gis-calculator
贡献
....