spinen / laravel-geometry
geoPHP 类的包装器,以便更好地与 Laravel 集成。
2.9.1
2024-04-08 20:47 UTC
Requires
- php: ^8.1
- illuminate/contracts: ~8|~9|~10|~11
- illuminate/support: ~8|~9|~10|~11
- phayes/geophp: ~1.2
Requires (Dev)
- laravel/pint: ^1.6
- mockery/mockery: ^1.5.1
- phpunit/phpunit: ^9.6.5
- psy/psysh: ^0.11.1
- symfony/var-dumper: ^6.2
- dev-develop
- 2.9.1
- 2.9.0
- 2.8.0
- 2.7.0
- 2.6.0
- 2.5.0
- 2.4.1
- 2.4.0
- 2.3.4
- 2.3.3
- 2.3.2
- 2.3.1
- 2.3.0
- 2.2.0
- 2.1.0
- 2.0.0
- 1.1.0
- 1.0.0
- 0.7.0
- 0.6.0
- 0.5.0
- 0.4.0
- 0.3.1
- 0.3.0
- 0.2.0
- 0.1.4
- 0.1.3
- 0.1.2
- 0.1.1
- 0.1.0
- dev-master
- dev-feature/supportL10
- dev-feature/php8Testing
- dev-feature/fixBadges
- dev-feature/moveToFuniq
- dev-feature/supportLaravel7
- dev-feature/addLaravel5.8Support
This package is auto-updated.
Last update: 2024-09-08 21:38:04 UTC
README
geoPHP 类的包装器,以便更好地与 Laravel 集成。
构建状态
先决条件
注意
1) 如果您需要使用 < php7.2,请继续使用 1.x 版本
2) 除了 Laravel >= 5.5,以下包也是必需的
安装
安装 Geometry
$ composer require spinen/laravel-geometry
该包使用自动注册功能。
使用包
Geometry 类公开了 parseType 方法,其中 "Type" 是 geoPHP 支持的几何类型的 StudlyCase。以下是完整列表...
- parseEwkb($geometry)
- parseEwkt($geometry)
- parseGeoHash($geometry)
- parseGeoJson($geometry)
- parseGeoRss($geometry)
- parseGoogleGeocode($geometry)
- parseGpx($geometry)
- parseJson($geometry)
- parseKml($geometry)
- parseWkb($geometry)
- parseWkt($geometry)
几何体被包装在 Spinen\Geometry\Geometries
命名空间中,并提供了一些糖,以便能够执行
- toEwkb()
- toEwkt()
- toGeoHash()
- toGeoJson()
- toGeoRss()
- toGoogleGeocode()
- toGpx()
- toJson()
- toKml()
- toWkb()
- toWkt()
除了上述导出方法之外,我们还添加了一个 toArray
方法,它从 toJson 方法中返回一个数组。为了方便起见,我们通过 getter 公开了几何体的所有属性,因此您可以直接访问属性,而无需询问数组中的键。
多边形的面积
我们估计的面积单位是平方米和英亩。我们预计估计误差在 1% 以内,因此它不是非常准确。我们基本上重构了 Mapbox 在他们的 geojson-area 包 中的一个 js 方法。您可以通过调用 getAcres
或 getSquareMeters
来获取面积。它们作为属性有快捷方式,因此您可以直接读取 "acres" 或 "square_meters" 属性。
示例
// Area of Polygon $points = [[1,1], [2,2], [3,2], [3,4]]; $geoJson = '{"type":"Polygon", "coordinates":[' . json_encode($points) . ']}'; $geo = new geoPHP(); $mapper = new Spinen\Geometry\Support\TypeMapper(); $geometry = new Spinen\Geometry\Geometry($geo, $mapper); $collection = $geometry->parseGeoJson($geoJson); // see above for more parse options $squareMeters = $collection->getSquareMeters(); $acres = $collection->getAcres();