首页 / 浏览问题 / 云GIS / 问题详情
iClient对iServer数据服务添加数据的操作报错
251EXP 2022年07月19日
在地图页面上想要往iServer的数据服务中永久增加一个点,通过
        var features1 = {
            fieldNames: seledShisetsuSmFeature.fieldNames,
            fieldValues: seledShisetsuSmFeature.fieldValues,
            geometry: SuperMapGeometry
        };
        var features2 = {
            geometry: SuperMapGeometry
        };

var editFeatureParameter = new SuperMap.REST.EditFeaturesParameters({
        features: [xxxxxxxxx],
        editType: SuperMap.REST.EditType.ADD,
        returnContent: true
    });

往features里添加1或2的两种方法添加点。

不设置fieldNames和fieldValues的2可以正常添加完成。但通过1去添加点的话,会报以下错误:

processFailed:the number of 'fieldNames' and 'fieldValues' are not equal or Geometry is null

跟踪进程发现Geometry不可能不存在,所以应该是fieldNames的问题

设置的FieldNames为:

fieldNames: Array(8)
0: "橋梁番号"
1: "橋梁名"
2: "架設年"
3: "主な橋梁形式"
4: "橋長"
5: "路線名"
6: "現況写真"
7: "詳細"

iServer的数据服务中已确认都存在这些字段,剩下些比如X,Y,SMID等字段没有添加

请问应该如何解决这个问题

1个回答

您好,看报错如果不是geometry的问题的话就是“字段名”和“字段值”的数量不相等,您检查一下传入的 'fieldNames' 和 'fieldValues'是否能对上,另外可以试试同样在参数直接在iserver添加能否添加上,如果iserver能添加上就还是前端参数设置的问题。
3,143EXP 2022年07月19日
您好,我是使用iClient Classic的EditFeaturesService去修改的服务。

var editFeatureParameter = new SuperMap.REST.EditFeaturesParameters({
        features: [features],
        editType: SuperMap.REST.EditType.ADD,
        returnContent: true
    });
同样的参数请问应该如何在iServer上进行修改
iServer里的字段如下:

字段列表:SmID,SmX,SmY,SmLibTileID,SmUserID,橋梁番号,橋梁名,路線番号,路線名,架設年,主な橋梁形式,橋長,測地系,経度,緯度,X,Y,現況写真,詳細

然后我的features里的fieldNames如下:

"fieldNames":["橋梁番号","橋梁名","架設年","主な橋梁形式","橋長","路線名","現況写真","詳細"],

"fieldValues": ["","","","","","","",""],

我试着一个个字段去掉,然后fieldValues也一个个去掉,但还是会报the number of 'fieldNames' and 'fieldValues' are not equal or Geometry is null的错误
  1. fieldNames: Array(8)
    1. 0: "橋梁番号"
    2. 1: "橋梁名"
    3. 2: "架設年"
    4. 3: "主な橋梁形式"
    5. 4: "橋長"
    6. 5: "路線名"
    7. 6: "現況写真"
    8. 7: "詳細"
    9. length: 8
    10. [[Prototype]]: Array(0)
  2. fieldValues: Array(8)
    1. 0: ""
    2. 1: ""
    3. 2: ""
    4. 3: ""
    5. 4: ""
    6. 5: ""
    7. 6: ""
    8. 7: ""
    9. length: 8
    10. [[Prototype]]: Array(0)
  3. geometry: initialize
    1. id: "SuperMap.Geometry.Point_490"
    2. type: "NONE"
    3. x: 15456795.657142
    4. y: 4252075.5575565
    5. [[Prototype]]: Object
  4. [[Prototype]]: Object

以上是代码里features的参数,没有fieldNames和fieldValues时可以正常添加,但加上了这两个就会报错

该问题为产品缺陷,数据集存储在SQL server数据库里时添加要素宽字符类型字段不可为空,目前已修复解决,如需修改后版本可联系我获取。
...