【问题标题】:Publishing geospatial data with Plone使用 Plone 发布地理空间数据
【发布时间】:2014-02-06 07:19:03
【问题描述】:

我正在使用collective.geo.bundle 在plone 上建立一个新站点,但我需要使数据可供桌面GIS 访问。两种明显的方法是使用 postgres/postgis 数据库,或者通过 WFS 服务发布数据。问题是 plone 似乎将泡菜存储在数据库中,因此 GIS 无法理解数据,并且似乎没有公开 WFS 的插件。那么两个问题:

  1. 有没有办法使用configure plone来使用具有几何数据类型的postgres/postgis数据库,以便可以从外部plone读取数据?

  2. 有没有办法设置 plone(例如通过插件)以公开 WFS?

【问题讨论】:

  • 您的意图是地理空间数据也可以通过 Plone(即collective.geo.* + OpenLayers)编辑,还是仅由 Plone 显示?因为如果没有,定义一个使用集中式 WMS 服务(而不是 WFS)的 OpenLayers 层并为collective.geo.* 配置该层就足够了。
  • 另外:您能否更具体地说明“将 Plone 配置为使用 postgis DB”的含义 - Plone 本身不会对地理空间数据做任何事情 - 它会是 @ 987654323@ 包。但是你到底想对 Plone 中的数据做什么呢?在添加内容类型时最初通过地理配准来创建它?在地图小部件中编辑它?
  • @LukasGraf 我正在使用collective.geo.* 来编辑和查看地理空间数据,但创建的数据也需要能够通过桌面GIS(只读)进行分析。我已经阅读了如何将plone连接到关系数据库,但文档说它将pickle对象存储在数据库中,而不是实际值(在本例中为geometry),所以我只能从withing Plone读取数据。

标签: python postgresql plone postgis web-feature-service


【解决方案1】:

很久以前,我开发了 zgeo.wfs https://pypi.python.org/pypi/zgeo.wfs 以通过 WFS 公开地理参考的 Plone 内容。 它曾经可以在 Plone 3 上运行,它可能不再在 Plone 4 上运行,但它可能是你的一个很好的起点。

注意:我不再维护它,因为我现在更喜欢使用 GeoJSON。

【讨论】:

  • 我查看了 zgeo.wfs,但正如您所说,它看起来并没有得到维护。不过,我对使用 geoJSON 很好奇。我虽然只是表示空间数据的 JSON 约定,但如果它可以取代 WFS,这是否意味着它实际上是 GIS 可以连接的一种服务?这可能会解决我的问题!
  • 您可以像使用 WFS 层一样使用 GeoJSON 层:您可以在 Web 客户端(如 OpenLayers 或 Leaflet)中显示它,也可以在 GIS 桌面客户端(如 QGis)中显示它。优点:制作和解释要容易得多。缺点:没有标准的查询方法。如果对您来说可操作性比互操作性更重要,那么 GeoJSON 是一个不错的选择。
  • 它的“无标准方式”让我有点担心。它需要由 QGIS 和 ArcGIS 访问,虽然 QGIS 应该不是问题,但我对 ArcGIS 不太确定。我想我需要做一些研究。
【解决方案2】:

TL;DR:我认为目前还没有现成的解决方案(使用collective.geo.*)可以做到这一点。

正如 cmets 中提到的,Plone 本身根本不处理地理空间数据,它是 collective.geo.geographer 来处理的。更具体地说,是 GeoreferencingAnnotatorIGeoreferenceable 对象的坐标保存到它们的注释中(并从那里加载它们)。

因此,仅强制 Plone 将其内容存储在关系数据库中,例如使用 RelStorage 不会对您有所帮助 - Plone 或 RelStorage 不了解地理空间数据,并且会像存储其他任何注释一样存储这些注释。

但是,使用上下文的 UUID 链接将地理配准数据写入 PostGIS 数据库而不是注释,编写您自己的 IWriteGeoreferenced 适配器应该不难数据到对象,并可能存储一些额外的元数据,如标题或 URL。此地理参考数据可以与您的实际内容完全分离 - 无需将所有 Plone 内容放入 PostgreSQL 数据库中。

另一种方法是为ObjectGeoreferencedEvent 编写事件处理程序,并将地理配准数据发布到 PostGIS DB(除了将其存储在实际对象的注释中)。由于您只想从桌面 GIS 以只读方式访问它,因此您不必担心双向同步该数据。

最后但并非最不重要的一点是,我强烈建议您查看collective.geo mailing list - 那里的人通常反应迅速且乐于助人,我可以想象其他人已经有相同的用例。

【讨论】:

  • 感谢您的报道。我希望避免为此编写自己的工具,但如果我确实需要,这给了我一个很好的关注点!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-26
  • 1970-01-01
相关资源
最近更新 更多