首页 / 浏览问题 / WebGIS / 问题详情
地物编辑中 调用editFeatures方法保存要素数据,经常报错500
33EXP 2021年09月03日

  代码是 for openlayers写的

在进行地物标记的时候, 将标记的范围保存到数据集中,但是经常会报错500 ,有时又能标注保存成功, 失败几率更大,不知道啥原因?

 //这里是绘画结束将绘画的图形保存为feature元素
draw.on('drawend', function (e) {

	let range = e.target.sketchCoords_[0]; //图形范围
	range.push(range[0])
	// 将标记的范围保存为一个polygon要素
	let geomOne = new ol.geom.Polygon([range])
	pointFeature = new ol.Feature({
		geometry: geomOne,
	});
	pointFeature.setProperties({
		id: pointFeature.ol_uid,
		type: 'build'
	});
	addPointsSource.addFeature(pointFeature);
 })


// 这里进行提交保存到build数据源下的build数据集中
function commitMark() {
	clearInteraction();
	var addFeatureParams = new SuperMap.EditFeaturesParameters({
		features: pointFeature,
		dataSourceName: "build",
		dataSetName: "build",
		editType: "add",
		returnContent: true
	});
	editFeaturesService.editFeatures(addFeatureParams, function (serviceResult) {
		console.log(serviceResult);
	});
}

上面是地图编辑的代码

下面是报错

就是这个报错,经常报错,不知道啥原因了, 用户在地图上标注建筑  就半天标注不上?

大佬 求救

1个回答

你好,您可以先尝试直接在iserver中对相应数据集进行添加要素
1,000EXP 2021年09月06日
不行啊    我么这项目是让各网格的网格长在后台系统里去各自标注各自网格里的建筑了,   不能在iserver上去标的,  这个问题是因为啥报错了 。我请求我本地的iserver服务就没有报错这个, 但线上的iserver就一直报错
我的意思是先测试一下直接在iserver里边添加要素是否能成功,再用代码添加,这个报错的意思是,字段和字段值数量不相同或者几何范围不存在
我在iserver中试了几次   是可以添加成功的
那您再把iserver中设置的相应参数,在前端用代码编写出来,和iserver的参数一致,看能否成功
不行,还是报错
您之前说本地的是可以的吗,看一下iserver有没有什么报错呢
本地的iserver 不会报错,不管是在用代码添加还是iserver上添加,各种添加删除要素都不会报错,

线上的地址,就会经常报错,有时又会成功,但成功概率很小
...