跳转到主要内容

将GeoJSON转换为内联Mapfile功能的mappyfile插件

项目描述

Version Build Status

A mappyfile 插件,用于将GeoJSON转换为内联 Mapfile功能。适用于将动态创建的功能(来自Web服务、用户创建的功能和其他外部数据源)添加到地图中,或快速可视化几何形状。

注意 - 要显示整个GeoJSON文件,MapServer可以配置为使用GeoJSON驱动程序将GeoJSON作为输入OGR源

import geojson
import mappyfile
# import directly
import mappyfile_geojson
# can also be imported as plugin using
from mappyfile.plugins import mappyfile_geojson

gj = geojson.load(fn)
l = mappyfile_geojson.convert(gj)
print(mappyfile.dumps(l))

转换以下JSON

{
  "type": "Feature",
  "geometry": {
    "type": "LineString",
    "coordinates": [
      [ 102.0, 0.0 ],
      [ 103.0, 1.0 ],
      [ 104.0, 0.0 ],
      [ 105.0, 1.0 ]
    ]
  },
  "properties": {
    "prop0": "value0",
    "prop1": 0.0
  }
}

到以下Mapfile LAYER

LAYER
    EXTENT 102 0 105 1
    STATUS ON
    TYPE LINE
    PROCESSING "ITEMS=prop0,prop1"
    FEATURE
        ITEMS "value0;0.0"
        POINTS
            102.0 0.0
            103.0 1.0
            104.0 0.0
            105.0 1.0
        END
    END
END

示例

有关使用mappyfile的插件示例,请参阅example.py,其中包含example.map

https://raw.githubusercontent.com/geographika/mappyfile-geojson/master/polygon.png

另一个示例,使用mapscript为每个测试用例创建图像,可在create_images.py找到。

示例输出图像位于images文件夹中。

要求

  • Python 3.8+

  • mappyfile(插件可以单独使用,但会创建一个结构化以在mappyfile中使用的数据字典对象)。应单独安装mappyfile。

安装

安装 mappyfile-geojson 插件将自动安装所需的依赖项 geojson

pip install mappyfile
pip install mappyfile-geojson

注意事项

  • 可以计算输入要素的范围,可选缓冲区(通过将 extent_buffer 传递给 convert 函数)

  • 支持多部分要素

  • 支持具有 Z 值的坐标序列,但 Z 值被忽略,因为 Mapserver 内联要素不支持 Z 值。

  • 作为 MapServer 的 LAYER,只支持单一几何类型,GeoJSON 文件中的所有要素也应为同一类型(然而,支持多部分和单部分要素的混合,例如 LineString 和 MultiLineString)

  • 不支持嵌套 JSON 属性

    "properties": {
        "prop0": "value0",
        "prop1": { "this": "that" }
    }

    将变为

    ITEMS "value0;{u'this': u'that'}"

发布

1.0 (02/10/2023)

  • 放弃对 Python 2.7 的支持

  • 更新 GeoJSON 和 mappyfile 依赖项

  • 使用 black 重新格式化代码

0.4 (09/02/2020)

  • 自动化的 Windows 测试

  • 自动化的发布流程

  • 设置 geojson 依赖项版本

  • 修复由于 py2 和 py3 之间的精度问题差异而失败的测试

  • 尽可能使用整数表示层 EXTENT,例如 5 而不是 5.0

0.3 (29/08/2018)

  • 添加对 MultiPoint、MultiLineString 和 MultiPolygon 的支持

  • 允许具有 Z 值的坐标(以前这些会导致脚本崩溃)

  • 更新 README

0.2 (15/02/2018)

  • 支持 Unicode

0.1 (06/02/2018)

  • 初始发布

作者

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分发

mappyfile-geojson-1.0.0.tar.gz (7.8 kB 查看哈希值)

上传时间

构建分发

mappyfile_geojson-1.0.0-py2.py3-none-any.whl (5.7 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面