gpt4 book ai didi

ajax - 没有这样的属性 : geometry when updating feature in openlayers 3 - Geoserver

转载 作者:行者123 更新时间:2023-11-29 11:45:00 25 4
gpt4 key购买 nike

我正在使用 Openlayers 3、Postgresql 和 Geoserver 2.8 开发一个网络制图应用程序,我想进行 WFS-T 事务以进行绘图和更新,所以我按照以下步骤操作 https://medium.com/@goldrydigital/wfs-t-with-openlayers-3-16-6fb6a820ac58这是我的修改代码:

var dirty = {};
select.getFeatures().on('add', function(e) {
e.element.on('change', function(e) {
dirty[e.target.getId()] = true;
});
});
var clone;
select.getFeatures().on('remove', function(e) {
var f = e.element;
if (dirty[f.getId()]){
delete dirty[f.getId()];
featureProperties = f.getProperties();
delete featureProperties.boundedBy;
clone = new ol.Feature(featureProperties);
clone.setId(f.getId());
clone.setGeometryName("the_geom");
}
});

var node = formatwfs.writeTransaction(null, [clone], null, {
featureNS: "myNameSpace",
featureType: "myLayer"
});

$.ajax({
type: "POST",
url: "http://localhost:8080/geoserver/wfs",
data: new XMLSerializer().serializeToString(node),
contentType: 'text/xml',
success: function(data) {
alert((new XMLSerializer()).serializeToString(data));
},
error: function(e) {
var errorMsg = e? (e.status + ' ' + e.statusText) : "";
alert('Error saving this feature to GeoServer.<br><br>'
+ errorMsg);
},
context: this
});

绘图部分工作正常但更新时出现错误:

<ows:ExceptionText>No such property: geometry</ows:ExceptionText>

我的表和图层中的几何列是“the_geom”,因此我使用 setGeometryName("the_geom") 在我的代码中仔细检查了它,但是当我进行 AJAX 调用时,我得到了上面的错误。

我首先想到的是将我的postgresql表中的geometry列名称更改为geometry并在geoserver中重新发布该层,但我想首先知道是否有任何不那么听话的解决方案,在此先感谢

将 postgresql 中的几何列名称更改为“几何”后,我现在得到另一个错误:

<ows:ExceptionText>java.lang.NullPointerException</ows:ExceptionText>

最佳答案

我把geometry的列名改成“geometry”,然后Java空指针相关的错误就来了,然后我发现生成的XML代码是错误的,需要修改,因为它引用了错误的typeName < strong>feature:myLayer 虽然它应该是 myNameSpace:myLayer 对于这个我所要做的就是用 Javascript 替换它:

var str=new XMLSerializer().serializeToString(node);
var data=str.replace("feature:myLayer","myNameSpace:myLayer");

关于ajax - 没有这样的属性 : geometry when updating feature in openlayers 3 - Geoserver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37250892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com