遇到這個問題,查了好久沒有查到原因,無意間看到別人編輯數據時故意把經緯度搞反了 才發現編輯保存時使用的經緯度跟常規的格式是不一樣的 需要把經緯度給調換下
var readyToAddFeature = temEditSource.getFeatures();
var realreadyToAddFeature = new ol.Feature();
for (var r = 0; r < readyToAddFeature.length; r++) {
var currentFeature = readyToAddFeature[r].clone();
var geometry = currentFeature.getGeometry();
var geometryPoint = new ol.geom.Point([geometry.getCoordinates()[1],geometry.getCoordinates()[0]]);
realreadyToAddFeature.setGeometryName("Shape");
realreadyToAddFeature.setGeometry(geometryPoint);
realreadyToAddFeature.setId('12345678');
realreadyToAddFeature.set('ZHONGWENMING', "ceshi");
}
var WFSTSerializer = new ol.format.WFS();
// 添加要素(addList, updateList, delList, opt)
var featObject = WFSTSerializer.writeTransaction([realreadyToAddFeature],
null, null, {
featureType: featureType, //feature對應圖層
featureNS: workSpace,//爲創建工作區時的命名空間URI
featurePrefix:workSpace,
srsName: 'EPSG:4326',// 座標系
});
當然在保存時還遇到一個問題 就是提示權限爲只讀
<ows:ExceptionText xmlns:ows="http://www.opengis.net/ows">{*****}TABLENAME is read-only</ows:ExceptionText>
這時只要打開geoserver管理界面,點擊左側的Security中的Data,點擊“Rule path”中的“..w”,勾選Grant access to any role下面的單選框,點擊保存即可。