smindel/silverstripe-gis

SilverStripe 的地理类型

安装: 732

依赖项: 2

建议者: 0

安全: 0

星标: 9

关注者: 3

分支: 5

开放问题: 4

类型:silverstripe-vendormodule

1.5.2 2021-10-20 20:48 UTC

README

Build Status Build Status Scrutinizer Code Quality Code Intelligence Status Code Coverage Version Total Downloads License

SilverStripe 的 GIS 开发工具包,将 SilverStripe 转换为 GeoCMS 和地图服务。

feature name

功能

  • 新字段类型:为 DataObjects 提供地理字段类型 Geometry 和 Geography(仅限 Postgres)
  • 新表单字段:使用 MapField 编辑新的地理类型,或将地图添加到 ModelAdmin 中的 GridFields
  • 可配置的投影:通过 proj4 支持多种投影
  • 基本和多部分几何形状:点、线字符串、多边形、多点、多线字符串、多边形
  • 开发工具:许多有用的助手,例如用于重新投影、距离测量、EWKT
  • MySQL、Postgres 和 Sqlite3:支持 Postgres 与 PostGIS、MySQL 5.7+,对 MariaDB 和 Sqlite3 与 SpatiaLite 的部分支持
  • ORM 集成:数据列表过滤器,例如查找交叉的 DataObjects 或在距离内
  • GeoJSON 导入器:将 GeoJSON 源作为 DataObjects 导入
  • GeoJSON 网络服务:为 DataObjects 提供 GeoJSON API
  • WFS:为 DataObjects 提供 WFS(实验性)
  • WMTS:将 DataObjects 渲染为 ZXY 瓦片,例如用于 leaflet 前端
  • 栅格:(仅限 Postgres)导入 GeoTIFF,访问值,生成统计信息并渲染地图瓦片

要求

  • MySQL 5.7+ 或带有 PostGIS 扩展的 Postgres 或带有 SpatiaLite 的 Sqlite3
  • SilverStripe 框架 4
  • GDAL 用于栅格支持

安装

建议使用 composer 安装该模块

$ composer require smindel/silverstripe-gis
$ vendor/bin/sake dev/build flush=all

MySQL 从 5.7.6 版本开始原生支持几何形状,但不支持地理形状或栅格数据。

当使用 Postgres 时,您必须安装 PostGIS 并执行以下命令 composer require silverstripe/postgresql。在 Ubuntu 和 Debian 上运行以下命令

$ sudo apt-get install postgis
$ sudo apt-get install postgresql-9.5-postgis-scripts
$ sudo apt-get install postgresql-9.5-postgis-2.2
$ sudo -u postgres psql SS_gis -c "create extension postgis;"

(将 'SS_gis' 替换为您的数据库名称)

步骤二和三可能不是必需的,因此您可能想先尝试步骤一和四,如果步骤四失败,再执行步骤二、三和四。

为了安装 Sqlite3,您必须安装 SpatiaLite 并执行以下命令 composer require silverstripe/sqlite3。在 Ubuntu 和 Debian 上运行以下命令

$ sudo apt install sqlite3 php-sqlite3 libsqlite3-mod-spatialite
$ sudo updatedb & locate mod_spatialite.so
> /usr/lib/x86_64-linux-gnu/mod_spatialite.so
update php.ini, set:
sqlite3.extension_dir = /usr/lib/x86_64-linux-gnu

配置

silverstripe-gis,就像其他 SilverStripe 模块一样,可以使用 YAML 文件、Config 类或 Configurables 的私有静态属性进行配置。查看以下部分,了解可以配置的内容。

示例和操作方法

API

  • GIS - 具有各种有用辅助工具的空间实用类
  • GeoJSONImporter - 将GeoJSON文件导入数据库
  • GridFieldMap - 以地图方式浏览DataObjects的GridField组件
  • MapField - 用于编辑地理类型的表单字段
  • GeoJsonService - 通过API动态暴露GeoJSON格式的DataObjects
  • WebMapTileService - 从DataObjects生成地图瓦片,适用于Leaflet或Openlayers
  • WebFeatureService - 从DataObjects生成WFS,适用于Leaflet或Openlayers(实验性)
  • Rasters - 导入栅格文件,访问值和统计信息,渲染WMTS瓦片

注意

此模块与框架版本4.3.1和4.3.2不兼容,因为不允许参数化字段赋值。该问题已在此处修复,因此4.3.1之前和4.3.2之后的框架所有版本都正常工作。