首页 / 浏览问题 / WebGIS / 问题详情
supermap iserver发布的地图服务写数据,一直报错
lxf
1EXP 2025年03月12日

代码如下,使用@supermap/iclient-leaflet版本为^9.1.2、leaflet版本为1.3.1

 const dataServiceUrl = 'http://192.168.2.118:8090/iserver/services/data-mysupermap/rest/data';
            // 连接服务端要素图层
            var geometry = new SuperMap.Geometry.Point(102.7, 25.0);
            var style = {
                strokeColor: "#339933",
                strokeOpacity: 1,
                strokeWidth: 3,
                pointRadius: 6
            }

            var geoJson = {
                "type": "Feature",
                "geometry": {
                    "type": "Point",
                    "coordinates": [102.7, 25.0]
                },
                "properties": {
                    SmID: 12,
                    SmUserID: 20,
                    SmGeometry: "123",
                    SmIndexKey: ""
                }
            }
            const editParams = new SuperMap.EditFeaturesParameters({
                dataSourceName: "China100",
                dataSetName: "XingKaiHuD",
                features: geoJson,
                editType: "add",
                returnContent: true
            });
            // 调用 FeatureService 保存到服务端
            L.supermap.featureService(dataServiceUrl)
                .editFeatures(editParams, (result) => {
                    if (result.error) {
                        console.error('编辑失败:', result.error);
                        return;
                    }
                    
                    // 刷新要素图层
                    featureLayer.refresh();
                });

数据服务发布如下图

代码执行后的报错如下图

一直报错the number of 'fieldNames' and 'fieldValues' are not equal or Geometry is null

如何解决上面的报错?

1个回答

SmGeometry字段格式不对,不用单独填写SmGeometry字段,而是专门有“geometry”参数表示,例如这样:https://iserver.supermap.io/iserver/services/data-China100/rest/data/feature/0-0-0.rjson?hasGeometry=true

1,061EXP 2025年03月12日
试了一下,还是报错,您方便具体说下是哪里报错导致的,怎么改
...