首页 / 浏览问题 / WebGIS / 问题详情
等值线提取报错
3EXP 2021年08月03日

请问一下,参照官网的案例,leaflet使用自己的数据做表面分析(等值线提取)一直报错,{"succeed":false,"error":{"code":400,"errorMsg":"IllegalArgumentException"}},查了一下代码,发现serviceResult.result是undefined,这种情况该怎么解决。

1.关键代码

function AVGTMP(){
		var latlngs = [[25,118],[40,118],[40,100],[25,100]];
        region = L.polygon(latlngs , {color:'red'}).addTo(map);
		//参数设置
        surfaceAnalystParameters = new SuperMap.DatasetSurfaceAnalystParameters({
            extractParameter: new SuperMap.SurfaceAnalystParametersSetting({
                datumValue: 0,// 表面分析中提取等值线基准值
                interval: 2,// 等值距,两条等值线之间的间隔值
                resampleTolerance: 0,// 重采样容限
                smoothMethod: SuperMap.SmoothMethod.BSPLINE,// 光滑处理所使用的方法
                smoothness: 3, // 等值线的光滑度
                clipRegion: region// 裁剪对象
            }),
            dataset: "CityClimate@ChinaClimate",//数据集
            resolution: 9000,   // 中间结果分辨率
            zValueFieldName: "Temperature"// 用于提取操作的字段名称
        });		
        surfaceAnalystService = L.supermap.spatialAnalystService(serviceUrl);
		console.log(surfaceAnalystService);
        surfaceAnalystService.surfaceAnalysis(surfaceAnalystParameters, function (serviceResult) {
			var result = serviceResult.result;
			console.log(surfaceAnalystParameters);
            if (result && result.recordset && result.recordset.features) {
                resultLayer = L.geoJSON(result.recordset.features, {weight: 3}).addTo(map);
            } else {
                
                alert(serviceResult.error.errorMsg);
            }
        });
     }

2.提取范围图

1个回答

您好,前端出现这个报错证明你填写的参数有误,请将传入的参数打印出来调试代码是否正确。
1,000EXP 2021年08月03日
感谢回复,打印出来的参数两者是相同的。
您好,zValueFieldName: "AVG_TMP"不支持文本类型的字段,你可以直接在桌面上进行分析,看看你的数据有问题没有,如果可以,iserver上直接填写参数,看看能不能分析出来
在桌面软件上进行等值线提取是成功的, zValueFieldName: "AVG_TMP" 设置的是双精度。iServer上直接填写参数,也显示分析成功。
您直接在iserver里边进行等值线提取能否成功呢,再次确认参数是否填正确,试试将您的代码贴到官网事例里边能出来吗
iServer上直接填写参数,也显示分析成功。 将代码贴到官网事例里边还是报错 "IllegalArgumentException"
那您按照iserver填写的参数对应填写代码,应该是没有问题的,打印一下serviceResult.result呢
代码上和iServer上填的参数一致,代码运行会报错。
你好,已找到错误的地方了,是裁剪范围设置的问题。裁剪范围可以设置为某一个图层吗,用什么方法。
clipRegion设置的是裁剪的“面对象”
您好,想问一下应该怎么用代码来设置clipregion参数,比如已发布的数据源里的某个图层
...