Довольно часто требуется создавать веб-приложения на Portal for ArcGIS, в которых будут использоваться сервисы с проекциями и системами координат, которые не включены в ядро ArcGIS. При работе с такими веб-слоями, веб-картами у Portal for ArcGIS возникают различного рода сложности. В данной статье мы расскажем, как можно обходить такие сложности.
Если пользовательская СК основана на «встроенном» в ядро ArcGIS датуме, то её достаточно описать в нужных файлах. Для этого следует отредактировать ряд файлов в папке WebAppBuider\stemapp\jimu.js\SpatialReference\:
- cs.json
- transform.json
- wkid.json
- wkidDetails.json
- wkidUtils.js
Каждый конкретный виджет, возможно, также потребует правки. Как, например, виджет Coordinate: WebAppBuider\stemapp\widgets\Coordinate\setting\transform.json
Аналогично файлы необходимо отредактировать и во вьювере, то есть в папке WebAppViewer.
После этого пользовательскую СК можно использовать в приложениях. К ней можно применять трансформации, встроенные в ядро ArcGIS.
Приложения, построенные на WebAppViewer, по возможности выполняют геометрические преобразования прямо в браузере, используя JSAPI (*.js) и встроенные параметры трансформации в бинарном файле (*.wasm): jsapi/jsapi/esri/geometry/support/pe-wasm.js и jsapi/jsapi/esri/geometry/support/pe-wasm.wasm
Если в бинарном файле (*.wasm) нужных параметров нет, то приложение пытается обратиться к сервису геометрии. Сервис геометрии по-умолчанию берётся c сайта ArcGIS Online: http://tasks.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer
Для ускорения обработки WebAppBulder и WebAppViewer можно настроить на использование «своего» сервиса геометрии — см. https://enterprise.arcgis.com/ru/portal/latest/administer/windows/configure-services.htm
Т.е. если вам требуется использование «своей» системы координат и трансформации, то для начала нужно, чтобы у Вас был свой сервис геометрии, который их понимает.
Материал по пользовательским системам координат и трансформациям можно взять из статей:
https://blogs.esri-cis.ru/2018/10/22/custom_projections_arcgis/, https://blogs.esri-cis.ru/2018/02/14/geo-transformations/
При желании с помощью редактирования соответствующих файлов можно описать свои собственные системы координат, трансформации и др. Эти дополнительные сфероиды, датумы, СК и трансформации становятся «родными» для ArcGIS Server и имеют свой Custom WKID, который можно потом использовать в сервисах и приложениях.
Если веб-приложение использует проекцию по умолчанию (Web Mercator), можно добавить виджет «Координаты» (https://enterprise.arcgis.com/ru/portal/latest/use/widget-coordinates.htm), который будет отображать координаты курсора.
Если СК виджета совпадает, с картой, то сразу показываются координаты.
В виджет «Координаты» можно добавить и другие СК для отображения координат курсора. Если СК виджета и карты различаются, то координаты не показываются, но работает кнопка «Показать координаты» в месте клика мышкой.
Для первых двух СК приложение не обращается к сервису геометрии. Всё что нужно, уже есть браузере. Для двух других обращается к сервису геометрии и получает координаты от него.