遇到这个问题,查了好久没有查到原因,无意间看到别人编辑数据时故意把经纬度搞反了 才发现编辑保存时使用的经纬度跟常规的格式是不一样的 需要把经纬度给调换下
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下面的单选框,点击保存即可。