我正在使用 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/