luoyy/spatial

There is no license information available for the latest version (v2.1.7) of this package.

php coordinate calculation component

v2.1.7 2022-06-28 08:31 UTC

README

安装包

composer require luoyy/spatial

Quick Sample Usage

/**
 * DEMO
 */
use luoyy\Spatial\Spatial;
use luoyy\Spatial\Support\LineString;
use luoyy\Spatial\Support\Point; // WGS84
use luoyy\Spatial\Support\Polygon;
use luoyy\Spatial\Transform;
use luoyy\Spatial\Enums\PointEnum;

var_dump(Transform::transform(new Point(180, 90), PointEnum::GCJ02));
var_dump((new Point(180, 90))->transform(PointEnum::GCJ02));
var_dump(Spatial::ringArea(new Polygon(new Point(116.169465, 39.932670), new Point(116.160260, 39.924492), new Point(116.150625, 39.710019), new Point(116.183198, 39.709920), new Point(116.226950, 39.777616), new Point(116.442621, 39.799892), new Point(116.463478, 39.790066), new Point(116.588276, 39.809551), new Point(116.536091, 39.808859), new Point(116.573856, 39.839643), new Point(116.706380, 39.916740), new Point(116.600293, 39.937770), new Point(116.514805, 39.982375), new Point(116.499935, 40.013710), new Point(116.546520, 40.030443), new Point(116.687668, 40.129961), new Point(116.539697, 40.080659), new Point(116.503390, 40.058474), new Point(116.468800, 40.052578))));
var_dump(Spatial::distance(new Point(116.169465, 39.932670), new Point(116.160260, 39.924492)));
var_dump(Spatial::lineDistance(new LineString(new Point(116.169465, 39.932670), new Point(116.160260, 39.924492), new Point(116.150625, 39.710019), new Point(116.183198, 39.709920), new Point(116.226950, 39.777616), new Point(116.442621, 39.799892), new Point(116.463478, 39.790066), new Point(116.588276, 39.809551), new Point(116.536091, 39.808859), new Point(116.573856, 39.839643), new Point(116.706380, 39.916740), new Point(116.600293, 39.937770), new Point(116.514805, 39.982375), new Point(116.499935, 40.013710), new Point(116.546520, 40.030443), new Point(116.687668, 40.129961), new Point(116.539697, 40.080659), new Point(116.503390, 40.058474), new Point(116.468800, 40.052578))));