Устранение неполадок с задачами геообработки в веб-приложениях
В этом разделе
Схема входного набора объектов
При выполнении задачи геообработки веб-приложение преобразует параметры в JSON и отправляет их в сервис геообработки для выполнения. Сервер ArcGIS обрабатывает JSON, присланный с клиента, и преобразовывает данные в нужные объекты данных (ArcObjects). Параметры GPFeatureRecordSetLayer преобразуются в набор объектов на основе свойств схемы geometryType, spatialReference и полей, определенных в JSON. Если свойства не указаны в JSON, сервер ArcGIS for Server наследует свойства от схемы по умолчанию, определенной для набора данных. Задача может завершиться со сбоем из-за неясности во входных значениях и схеме по умолчанию. Во избежание сбоев веб-разработчик должен определить эти свойства при создании наборов объектов. В приведенном ниже коде JavaScript показано, как задавать значения полей и свойств spatialReference и geometryType для набора данных, созданного на основе слоя объектов в веб-приложении.
Создание наборов объектов на основе слоя объектов featurLayer в интерфейсе API JavaScriptfunction 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;