首页 / 浏览问题 / 三维GIS / 问题详情
webgl下三维缓冲区分析执行出错
141EXP 2018年06月19日

使用产品:iserver 8c 810 操作系统:win7 x64
数据类型:文件型
问题详细描述:使用绘图功能画出图形,对图形进行三维缓冲区分析执行出错
问题重现步骤:

1.构建参数

	var handlerBufferPolygon = new Cesium.DrawHandler(viewer,
			Cesium.DrawMode.Polygon);
	handlerBufferPolygon.drawEvt.addEventListener(function(result) {
				tooltip.setVisible(false);
				handlerBufferPolygon.polygon.show = false;
				handlerBufferPolygon.polyline.show = false;
				var geometry = CesiumToSuperMap.convertPolygon(Cesium,
						SuperMap, result.object);
				var param = {
					url : dzc_service.serverurlsys,
					dataSetNames: "AttachData:Underside",// {String}
					// 要用来做缓冲区分析的数据源中数据集的名称。该名称用形如”数据集名称@数据源别名”形式来表示。
					distance : 100,// {Number} 以数值作为缓冲区分析的距离值。默认为100,单位:米。
					geo : geometry,
					callback : bufferAnalystCompleted
				}
				bufferByGeo(param);
			});
	handlerBufferPolygon.activate();

2.执行方法

function bufferByGeo(param){
	var bufferDis = new SuperMap.REST.BufferDistance({value: param.distance});
   var bufferParam, bufferByGeometryParameters, bufferService;
         bufferByGeometryParameters = new SuperMap.REST.GetFeaturesByBufferParameters({
         dataSetNames: "AttachData:Underside",
         bufferDistance:100,
         toIndex:-1,
         geometry: param.geo
     });
     bufferService = new SuperMap.REST.GetFeaturesByBufferService(param.url,{
      eventListeners: {
            "processCompleted":function(queryEventArgs){
                if(typeof(param.callback)==="function"){
                  param.callback(queryEventArgs);
                }
              }, 
              "processFailed":_functionFailed
            }});
     bufferService.processAsync(bufferByGeometryParameters);
}

3.报错

VM932:1 GET http://localhost:8090/iserver/services/spatialAnalysis-BallScene/restjsr/spatialanalyst/featureResults.jsonp?returnContent=true&_method=POST&requestEntity=。。。。 net::ERR_ABORTED

1个回答

您好,您是想根据对象创建缓冲区还是想用对象做缓冲区查询?
5,985EXP 2018年06月19日
现在做的是缓冲区查询。通过鼠标交互绘出图形,然后利用缓冲区功能查出在缓冲区的对象。
那你的url写对了吗,bufferService = new SuperMap.REST.GetFeaturesByBufferService(param.url,{。。。

这里url应该是个数据服务的地址,贴出来看看呢

看你上面报错,应该就是url有问题,console.log(param.url)打印出来确认一下是多少。另外你看看和范例有差别没有http://support.supermap.com.cn:8090/iserver/iClient/forJavaScript/examples/classic/editor.html#query_getFeatureByBuffer

这里有个问题,三维服务不能直接进行缓冲区分析,那么需要对数据做哪些准备工作,都需要发布什么对应的数据来实现这个功能呢(是发布其对应的平面数据吗)?另外我做缓冲区分析无论选取哪片区域获取的数据里SMID都是从1开始编号。

...