Можно предоставлять KML динамически по сети, опубликовав картографический сервис ArcGIS Server с включенной поддержкой KML. Это позволит клиенту подключаться к картографическому сервису и запрашивать данные KML для определенного географического региона. Доступ к KML можно предоставить через операции создания карты, создания KML и запроса REST, ссылки Просмотреть в ArcGIS Earth в Директории сервисов ArcGIS или через связанный сетевой документ KML, в котором находится правильно заданный URL сервиса.
В данном руководстве описывается процесс создания сервиса KML с вытянутыми 3D-объектами. Сначала следует использовать ArcGlobe для создания файла слоя со свойствами вытягивания 3D. Затем необходимо добавить слой в ArcMap, чтобы задать символы слоя и настроить описательный текст, который будет связан с этими объектами в KML. Затем необходимо опубликовать карты в качестве сервиса с включенными возможностями KML. Наконец, необходимо создать сетевую ссылку KML на сервере, чтобы остальные пользователи могли без труда получить доступ к KML.
Действия перед выполнением этого руководства
Если ArcGIS Server был только что установлен, необходимо выполнить ряд подготовительных действий, прежде чем подключиться к серверу и начать публиковать сервисы.
- Подробные инструкции по настройке сайта ArcGIS Server см. в разделе Приступая к работе после установки данной справочной системы.
- Сведения о том, как сделать данные, на которые ссылается ресурс ГИС, доступными на сервере, см. в разделе Предоставление доступа к данным в ArcGIS Server.
Подготовка данных в ArcGlobe и ArcMap
Чтобы опубликовать классы пространственных объектов с 3D-атрибутами, например смещениями по оси z или вытягиванием на основе атрибутов, сначала необходимо изменить свойства слоя классов пространственных объектов в ArcGlobe и сохранить их в виде файла слоя, а затем добавить файл слоя в документ ArcMap. Приведенные ниже действия показывают, как можно применить вытягивание в ArcGlobe и сохранить соответствующий файл слоя, который впоследствии можно использовать в ArcMap.
- Запустите ArcGlobe и добавьте класс пространственных объектов.
- В Таблице содержания щелкните слой правой кнопкой мыши и выберите Свойства.
- Щелкните вкладку Вытягивание на глобусе.
- Установите отметки Вытягивать объекты слоя и Не отображать нижнюю поверхность вытягиваемых полигонов. Кроме того, примените вытягивание, добавляя его к базовой высоте каждого объекта.
- Щелкните вкладку Вытягивание глобуса в ArcGlobe.
- Задайте значение или выражение вытягивания. Это определяет, насколько далеко будут всплывать объекты на карте. Вы можете открыть Конструктор выражений , если понадобится помощь в построении выражения. В этом случае полигональные объекты вытягиваются путем умножения значения атрибута POP10_SQMI на 250 (POP10_SQMI *250) и добавления этого значения в базовую высоту объекта. Это произвольное значение выбирается только для внешнего вида. Может понадобиться поэкспериментировать с выражением для получения нужного внешнего вида.
- После определения вытягивания слоя и придания ему трехмерного вида, щелкните правой кнопкой мыши слой и выберите Сохранить как файл слоя.
- После определения свойств 3D для данных необходимо определить свойства слоя 2D. Откройте ArcMap и щелкните Добавить данные.
- Перейдите к только что сохраненному из ArcGlobe файлу слоя (.lyr) и щелкните Добавить. Слой не отображается в приложении ArcMap в виде 3D, однако он будет отображаться в 3D при просмотре карты в ArcGIS Earth.
- Задайте свойства слоя, щелкнув правой кнопкой мыши слой и выбрав в контекстном меню пункт Свойства.
- Перейдите на вкладку Общие, задайте Диапазон масштабов для слоя и введите описание. Это описание будет использоваться для описания слоя KML, отображаемого клиентами KML, и может содержать любой допустимый HTML-код.
- Дополнительно можно перейти на закладку Отображение и изменить прозрачность слоя. Легкая прозрачность позволит пользователям видеть базовую карту.
- Кроме того, перейдите на закладку Символы и измените свойства построения изображения. Едва различимая градиентная заливка позволит разграничивать прилегающие 3D объекты.
- Щелкните закладку Поля и задайте поля, которые будут доступными через картографический сервис. Можно также изменить любое поле в классе пространственных объектов для использования псевдонима KMLSnippet. Измененные для использования псевдонима KMLSnippet значения поля будут отображаться под каждым значком объекта в таблице содержания клиента KML.
- Кроме того, задайте любые определяющие запросы или соединения и связи, которые должны применяться к данным. Это можно сделать, соответственно, на закладках Определяющий запрос и Соединения и связи.
- Можно также щелкнуть вкладку Надписи и указать надписи, которые следует применять. KML унаследует цвета, размеры и выражения надписей для точечных объектов. KML не поддерживает надписи для линий или полигонов.
- Щелкните вкладку Всплывающее окно HTML и отметьте Показать содержание слоя, используя окно HTML. Затем выберите одну из опций форматирования. Это определяет описание KML для каждой функции или, другими словами, содержание, которое отображается во всплывающем информационном окне при щелчке объекта. Можно использовать HTML, JavaScript и стили страниц для украшения описания или, если нужно только поэкспериментировать, можно выбрать опцию по умолчанию для отображения форматирования HTML как таблицы с видимыми полями.
- Щёлкните ОК, чтобы отменить свойства слоя, затем сохраните документ карты, последовательно щелкнув Файл > Сохранить.
Публикация сервиса KML
После создания документа карты необходимо опубликовать его как картографический сервис. Картографический сервис может создавать KML пока включены возможности KML. По умолчанию возможности KML включены.
- В главном меню ArcMap выберите Файл > Опубликовать как > Сервис.
- В окне Опубликовать как сервис выберите Опубликовать сервис. Нажмите Далее.
- В диалоговом окне Опубликовать сервис щелкните Подключиться к ArcGIS Server для создания нового подключения к ArcGIS Server.
- В окне Добавить ArcGIS Server выберите Опубликовать ГИС-сервисы. Нажмите Далее.
- В поле URL сервера введите URL сайта ArcGIS Server, к которому вы хотите подключиться, например, https://gisserver.domain.com:6443/arcgis.
- В раскрывающемся списке Тип сервера выберите ArcGIS Server.
- Во время публикации создается файл определения сервиса, который затем временно сохраняется на локальном диске. Когда процесс публикации завершается, определение сервиса загружается на сервер, а локальный файл удаляется. Для этого упражнения примите папку размещения по умолчанию и продолжайте.
- Если администратор безопасности включил функции безопасности для ArcGIS Server, введите Имя пользователя и Пароль. Щелкните Готово.
- При необходимости в окне Опубликовать сервис введите новое имя сервиса. Имя может содержать только цифры, буквы, подчеркивания и не может быть длиннее 120 символов. Нажмите Далее.
- По умолчанию сервисы публикуются в корневой папке (root) ArcGIS Server. Сервисы могут размещаться во вложенных папках корневой папки. Выберите папку, в которой требуется опубликовать сервис, или создайте новую папку для сервиса. Нажмите кнопку Продолжить.
- Появится Редактор сервисов. Редактор сервисов используется для выбора того, что пользователи могут делать с сервисом KML, и управления предоставлением доступа к сервису KML на сервере. Перейдите на вкладку Возможности.
- По умолчанию, картирование и KML включены. На левой панели Редактора сервисов щелкните KML и измените следующие свойства:
- Выберите разрешенные операции для сервиса KML. Описание каждой операции см. в разделе Поддержка KML в ArcGIS Server.
- Выберите, как следует ограничивать KML, возвращаемый сервисом KML. Опции Режима совместимости KML позволяют включать только сфокусированные поднаборы функций, если сервис будет использоваться преимущественно с Google Планета Земля, Картами Google или Google Mobile. Это повысит производительность.
- Выберите, как следует ограничить объекты, возвращаемые сервисом KML, размер выходного изображения и выходное значение DPI.
- Воспользуйтесь опциями Используйте тег NetworkLinkControl для ограничения частоты опроса сервиса клиентом.
Подсказка:
Дополнительные сведения о настройке сервиса KML для размещения см. в разделе Настройка и конфигурация сервисов.
- Щелкните Анализировать. Документ карты будет проанализирован на возможность публикации его на сервере.
Подсказка:
Чтобы расширить область просмотра при настойке сервиса KML, щелкните кнопку Свернуть , расположенную в верхней части Редактора сервисов.
- Исправьте все Ошибки в окне Подготовка; это необходимо сделать до публикации. При необходимости, можно разрешить предупреждения и информационные сообщения, чтобы улучшить производительность и внешний вид сервиса KML. Дополнительные сведения об устранении этих неполадок см. в разделе Анализ ГИС-ресурса.
Примечание:
Можно зарегистрировать папки и базы геоданных на сайте ArcGIS Server, чтобы сервер мог распознать и использовать ваши данные. Если продолжить выполнение следующих действий, все данные, указанные в документе карты, взятые из незарегистрированной папки или базы геоданных, будут скопированы на сервер во время публикации. Это мера предосторожности, гарантирующая, что сервер может получить доступ ко всем данным, используемым сервисом. Подробные инструкции по регистрации папки или базы геоданных на сайте ArcGIS Server см. в разделе Регистрация данных на ArcGIS Server с помощью ArcGIS Desktop.
- При необходимости в Редакторе сервисов щелкните Предварительный просмотр. Это позволит увидеть, как карта будет выглядеть при просмотре в браузере. Дополнительные сведения см. в разделе Предварительный просмотр карты.
- После устранения ошибок в документе карты щелкните Опубликовать.
- Сервис был опубликован, теперь его можно просмотреть, развернув узел ГИС-серверы в окне Каталог и перетащив сервис в Таблицу содержания ArcMap.
Просмотр операций KML REST, отображаемых в директории сервисов ArcGIS Server
По умолчанию любой сервер ArcGIS Server предоставляет директорию сервисов, благодаря которой можно использовать REST для просмотра и взаимодействия с сервисами. Можно использовать директорию сервисов для изучения взаимодействия с сервисом KML.
- Откройте веб-браузер и перейдите в директорию сервисов, URL которой обычно имеет вид https://gisserver.domain.com:6443/arcgis/rest/services.
- В списке сервисов щелкните имя сервиса KML. Если сервис не отображается, он может располагаться в папке.
- Щелкните ссылку Просмотреть границу в: ArcGIS Earth, чтобы открыть документ KMZ, в котором отображается наложение на уровне поверхности земли этого сервиса. Или, если сервис кэшируется, можно просмотреть общее наложение для регионов, поддерживающих KML. Обратите внимание, что эта ссылка не возвращает векторы.
- Вернитесь в Директорию сервисов и щелкните любой слой в сервисе.
- В нижней части страницы щелкните ссылку Запрос. Это приведет к открытию формы, в которой можно указать различные параметры для запроса слоя. Последней опцией является формат, в котором следует отображать ответ. Выбор в качестве формата KMZ приведет к созданию документа KMZ, содержащего результаты запроса.
- Вернитесь на страницу сервиса в Директории сервисов.
- В нижней части страницы щелкните Создать KML. Эта ссылка отображает веб-форму, в которой можно выбрать слои для возвращения в KML. Можно также динамически возвращать векторы из сервиса, выбрав опцию Векторные слои как векторные данные, а растровые слои как растровые изображения.
Создание сетевой ссылки на основе картографического сервиса
KML можно сделать доступным на сервере в любом формате путем создания сетевой ссылки KML в ArcGIS Server Manager. Затем можно добавить эту сетевую ссылку в ArcGIS Earth, ArcGlobe, Google Earth и Google Maps.
Примечание:
Убедитесь, что сервис не защищен, перед добавлением ссылки в Google Earth или Google Maps. Если сервису требуется авторизация с использованием токенов ArcGIS, он не может использоваться на этих платформах.
- Откройте Manager и выполните вход. Справка по этому шагу приведена в разделе Вход в Менеджер.
- Щёлкните Сервисы > Сетевые ссылки KML > Создать сетевую ссылку.
- Укажите имя ссылки. Указанное имя используется в качестве имени файла и встраивается в тег Name файла сетевой ссылки.
- Кроме того, укажите Внешнее имя узла.
- Также предоставьте краткое и полное описания. В полном описании можно использовать встроенные HTML-теги и URL.
- Кроме того, укажите поведение фрагмента кода. По умолчанию фрагменты кода не настроены для отображения. Нажмите Далее.
- В раскрывающемся списке Картографический сервис выберите картографический сервис, который следует опубликовать. Кроме того, выберите, какие слои должны отображаться по сетевой ссылке KML.
- Выберите опцию отображения Векторные слои как векторные данные, а растровые слои как растровые изображения. Вытянутые объекты являются векторами, поэтому следует выбрать эту опцию. В противном случае будет отображаться плоское, растеризованное изображение.
- Кроме того, задайте режим совместимости по умолчанию для указанного клиента Google.
- По желанию измените параметры Обновление на основе вида, Масштаб границ вида и Обновление по времени. Кроме того, можно определить переход браузера к виду после обновления. В рамках этого руководства опции по умолчанию являются достаточными. Нажмите Далее.
- Дополнительно можно определить значения параметров Широта, Долгота, Диапазон, Заголовок и Наклон в соответствии с требуемым способом отображения сетевой ссылки. В рамках этого руководства опции по умолчанию являются достаточными.
- Щёлкните Создать, чтобы создать сетевую ссылку KML.
При возврате в модуль Сетевые ссылки KML в Manager вы увидите URL новой сетевой ссылки (например, https://gisserver.domain.com:6443/arcgis/kml/networklink01.kmz). Щелкните или скопируйте и вставьте этот URL, чтобы добавить вашу сетевую ссылку KML в ArcGIS Earth, ArcGlobe, Google Earth или Google Maps.