Skip To Content

Устранение неполадок с задачами геообработки в веб-приложениях

Схема входного набора объектов

При выполнении задачи геообработки веб-приложение преобразует параметры в JSON и отправляет их в сервис геообработки для выполнения. Сервер ArcGIS обрабатывает JSON, присланный с клиента, и преобразовывает данные в нужные объекты данных (ArcObjects). Параметры GPFeatureRecordSetLayer преобразуются в набор объектов на основе свойств схемы geometryType, spatialReference и полей, определенных в JSON. Если свойства не указаны в JSON, сервер ArcGIS for Server наследует свойства от схемы по умолчанию, определенной для набора данных. Задача может завершиться со сбоем из-за неясности во входных значениях и схеме по умолчанию. Во избежание сбоев веб-разработчик должен определить эти свойства при создании наборов объектов. В приведенном ниже коде JavaScript показано, как задавать значения полей и свойств spatialReference и geometryType для набора данных, созданного на основе слоя объектов в веб-приложении.

Создание наборов объектов на основе слоя объектов featurLayer в интерфейсе API JavaScript

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 Mercator (wkid:4326) или Web Mercator Auxiliary Sphere (wkid:102100). Однако базовая модель или скрипт задачи геообработки может использовать другие наборы данных в качестве данных проекции, которые находятся в другой пространственной привязке. В некоторых случаях, если пространственная привязка входных наборов объектов и данные проекции в задаче отличаются, задача может завершиться со сбоем. В некоторых случаях, если пространственная привязка входных наборов объектов и данные проекции в задаче отличаются, задача может завершиться со сбоем. В разделе Рекомендации по пространственной привязке для сервисов геообработки обсуждаются некоторые решения, которые позволят разработчику избегать подобных сбоев.

Выходная пространственная привязка (система координат)

Пространственная привязка выходных наборов объектов зависит от входных параметров и других наборов данных, которые используются в модели или скрипте. При работе веб-приложений предполагается, что пространственная привязка выходных объектов та же, что у экземпляра карты (esri.Map). Поэтому объекты не будут отображаться как ожидается. Во избежание подобных несоответствий необходимо задать свойство outSpatialReference экземпляра геообработки в соответствии с пространственной привязкой карты, как показано в приведенном ниже коде. При определении свойства выходной пространственной привязки, сервер вернет выходные наборы объектов запрошенном outSpatialReference.

Определение outSpatialReference в интерфейсе API JavaScript

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;

Связанные разделы