ronappleton / php-geojson
GeoJSON对象构建器。
dev-master
2022-05-09 22:15 UTC
Requires
- php: >=8.1
Requires (Dev)
- stematic/testing: dev-develop
This package is auto-updated.
Last update: 2024-09-10 03:00:53 UTC
README
GeoJSON对象构建器。
介绍
这个库是一个简单的GeoJSON对象构建器,用于在php中使用。
这个项目的灵感来源于我正在工作的另一个项目Tile38 PHP客户端。在那个项目中,部分需求是有效的GeoJSON对象,因此创建了这个库以满足该需求。
有关GeoJSON对象的更多信息,请参阅此网站或官方RFC 7946
这个库的初始版本将提供在Tile38项目中使用的功能,后续版本将确保完全实现RFC,然后第三个版本将提供将GeoJSON数据反序列化为对象的特性。
安装
请使用composer拉取包 composer require ronappleton/php-geojson
请注意,这个库需要php ^8.1,我可能在某个时候发布对php ^7.4的支持,但目前是^8.1,如果有人想将其分支到其他php版本,我将提供帮助。
使用方法
这个库提供
RonAppleton\GeoJson\Enums\GeoJsonType::class RonAppleton\GeoJson\Objects\BoundingBox::class RonAppleton\GeoJson\Objects\Feature::class RonAppleton\GeoJson\Objects\FeatureCollection::class RonAppleton\GeoJson\Objects\GeometryCollection::class RonAppleton\GeoJson\Objects\LineString::class RonAppleton\GeoJson\Objects\MultiLineString::class RonAppleton\GeoJson\Objects\MultiPoint::class RonAppleton\GeoJson\Objects\MultiPolygon::class RonAppleton\GeoJson\Objects\Point::class RonAppleton\GeoJson\Objects\Polygon::class
它还提供了一个工厂用于方便使用,这是 RonAppleton\GeoJson\Objects\Factory::class
使用工厂提供了一个简单的接口来创建对象
$point = Factory::make(GeoJsonType::Point);
例如,在创建LineStrings时,您也可以将计数作为工厂的第二个参数传递
[$point, $point2, $point3, $point4] = Factory::make(Point::class, 4);
所有对象都提供了一个toArray()
方法和一个toJson()
方法,当创建如多边形等复合类型的对象时,toArray和toJson方法将遍历所有对象,因此它们将自动转换为对象。