ronappleton/php-geojson

GeoJSON对象构建器。

dev-master 2022-05-09 22:15 UTC

This package is auto-updated.

Last update: 2024-09-10 03:00:53 UTC


README

GeoJSON对象构建器。

License PHP Version Require Codacy Badge Codacy Badge Dependents

介绍

这个库是一个简单的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方法将遍历所有对象,因此它们将自动转换为对象。