Skip To Content

Web 应用程序中的地理处理任务故障排除

输入要素集方案

执行地理处理任务时,Web 应用程序会将参数转换成 JSON,并将其发送至地理处理服务以供执行。ArcGIS Server 会解析从客户端发送的 JSON,并将其转换成相应的数据对象 (ArcObjects)。GPFeatureRecordSetLayer 参数会转换成要素集,这基于 JSON 中定义的方案属性 geometryTypespatialReference字段。如果 JSON 中未指定这些属性,则 ArcGIS Server 将继承为要素集定义的默认方案的属性。由于输入值与默认方案会发生混淆,任务可能会失败。为避免失败,Web 开发员应在创建要素集时设置这些属性。以下 JavaScript 代码说明如何为在 Web 应用程序中通过要素图层创建的要素集设置字段、SpatialReferenceGeometryType 属性。

在 JavaScript API 中通过要素图层创建要素集

function getFeatureSetFromFLayer(){
  //create featuresets
	 var featureSet = new esri.tasks.FeatureSet();			    
  //get featurelayer from map's featurelayer (ex:myFeatureLayer)
   var layer=map.getLayer("myFeatureLayer")
  //get features from featurelayer   
  featureSet.features = layer.graphics;
  //assign fields property
	 featureSet.fields=layer.fields; 
  //assign map's spatial reference
  // Assumption: map variable is esri.Map instance in the application
  featureset.spatialReference=map.spatialReference;
  //assign geometryType
  featureSet.geometryType=layer.geometryType;
	 return featureSet;		  
}

提示:
Web 应用程序中创建的输入要素集通常在 Web 墨卡托 (wkid:4326) 或 Web 墨卡托辅助球体 (wkid:102100) 投影中。但是,地理处理任务的基础模型或脚本可以使用不同空间参考中的其他数据集作为投影数据。某些情况下,如果输入要素集与任务投影数据的空间参考不同,任务可能会失败。这是因为任务创作者没有预计会接收不同于投影数据的空间参考中的要素。地理处理服务的空间参考注意事项主题讨论了任务创作者可避免发生此类故障的解决方案。

输出空间参考(坐标系)

输出要素集的空间参考取决于模型或脚本中使用的输入参数和其他数据集。Web 应用程序假设输出要素的空间参考采用与其地图实例 (esri.Map) 相同的空间参考。因此,要素可能不会得到预期的渲染。为避免发生此类混淆,应将地理处理实例的 outSpatialReference 属性设置为地图的空间参考,如以下代码所示。设置输出空间参考属性时,服务器会返回请求的 OutSpatialReference 中的要素集。

在 JavaScript API 中设置 OutSpatialReference

var gpTask = new esri.tasks.Geoprocessor(
	"http://<gp-task-url>");
//map is assumed to be the map instance of the web application
gpTask.outSpatialReference=map.spatialReference;
相关主题