编辑feature 不支持一次性编辑多个。
搞不明白这里编辑的时候接收的features值明明是个数组,传多个feature 确修改不了,刷新还会出现重复数据,相当于更新两个是成功了,但坐标点是错的,传的值是对的啊,还以为是我的bug,找了半天啊,太坑了!
最后改成循环请求geoserver接口就解决了。
难受😫
function modify(feature) {
let editFeature = f.clone();
if (this.projection == "EPSG:4326") {
this.applyTransformCoord(editFeature);
}
editFeature.setId(f.getId());
editFeature.setGeometryName("the_geom");
formatServeJson("update", [editFeature], layer, (res) =>
resolve(res)
);
}
function formatServeJson(type, features) {
var WFSTSerializer = new WFS();
// 插入 修改 删除
var featObject = WFSTSerializer.writeTransaction(
type == "insert" ? features : null,
type == "update" ? features : null,
type == "delete" ? features : null,
{
featureType: layer.featureType, //图层名称
featurePrefix: layer.featurePrefix, //空间名称
featureNS: layer.featureNS, // 注意这个值必须为创建工作区时的命名空间URI
srsName: "EPSG:3857",
version: "1.1.0",
}
);
// 转换为xml内容发送到服务器端
var serializer = new XMLSerializer();
var featString = serializer.serializeToString(featObject);
var request = new XMLHttpRequest();
request.open("POST", options.url, false);
// 指定内容为xml类型
request.setRequestHeader("Content-Type", "text/xml");
request.send(featString);
let res = WFSTSerializer.readTransactionResponse(
request.responseText
);
}
编辑或删除图块有时候会更新不了??求解?真的是概率问题