javascript - 从 WFS 加载时,不会维护 OpenLayers 几何名称

标签 javascript typescript openlayers geoserver openlayers-6

我正在使用 OpenLayers 6 和 GeoServer 2.16(加上 PostGIS);当我从 GeoServer 加载图层时,功能会加载,但它们的几何名称会被覆盖。在 GeoServer 中,几何名称(以及 PostGIS 中的列)是geom。返回的 XML 反射(reflect)了这一点。但是 OpenLayers 对象的几何名称为 geometry,忽略了 GeoServer 返回的几何名称。

这看起来微不足道,但会导致问题,因为当我去编辑功能时,我收到错误 org.geoserver.wfs.WFSException: No such property: Geometry ;因此,虽然我可以在代码中编辑几何名称和相应的值,但这似乎是一个糟糕的黑客。

这是一个错误还是我在文档中找不到的某些设置?

任何帮助将不胜感激! (我没有看到任何反射(reflect)此错误的问题(获取 WFS 是我的情况,所有问题似乎都与回发有关)。如果我重复,请告诉我。)

最佳答案

您可以通过要求 OpenLayers 从输入中读取几何列的名称来解决此问题。对于 GeoJSON :

source: new VectorSource({
    format: new GeoJSON({ extractGeometryName: true }),
    url: ...
}),

关于javascript - 从 WFS 加载时,不会维护 OpenLayers 几何名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58452229/

相关文章:

javascript - 当您不知道 key 时访问对象内部的某些内容

javascript - D3 在拖动圆圈时获取下方多边形的 id

javascript-objects - JavaScript 对象创建方法

typescript - `in` 关键字在 typescript 中有什么作用?

generics - 我可以告诉 TypeScript 泛型类型有构造函数吗?

javascript - 打开图层标签不起作用

javascript - jQuery UI 标签 - 如何获取当前选中的标签索引

typescript - '类型 'never' 上不存在属性

javascript - 检查标记是否位于当前可见区域中

javascript - Open Layers 无法读取未定义的属性 'add Layer'