Skip To Content

Публикация размещенный слоев листов

Слои листов позволяют быстро визуализировать большие наборы данных, используя коллекции заранее созданных изображений карты или листов. Размещенные листы выступают как географическая подложка для ваших рабочих слоев. Например, вы можете добавить листы окрестных улиц, чтобы дать визуальное представление о местонахождении дорожных знаков из векторного слоя.

Вы можете опубликовать слой листов, который будет размещен на ArcGIS Enterprise, с помощью любого из следующих способов:

Вы можете автоматически построить кэш листов в процессе публикации, или сделать это в ручном режиме после публикации. Более подробно см. Советы и рекомендации по кэшу листов.

Чтобы опубликовать размещенный слой листов, вы должны быть участником одной из следующих организаций:

При публикации из ArcGIS Pro, ArcMap или пакета листов, то пакет листов добавляется в качестве элемента в ваши ресурсы. После того, как вы убедитесь, что слов листов работает, вы можете удалить пакет слоя листов с портала, чтобы сэкономить место, но делать это нужно только в том случае, если вы точно уверены, что пакет листов вам больше не пригодится.

Публикация из размещённого векторного слоя

Вы можете опубликовать размещенный слой листов в организации, используя собственный существующий размещенный векторный слой. Этот рабочий процесс применяется для визуализации больших наборов данных, поскольку кэшированные листы отображаются гораздо быстрее, чем динамически отображаемые пространственные объекты.

Примечание:

  • Редактирование пространственных атрибутов, выполненное в размещенном векторном слое, не будет автоматически отражаться в размещенном слое листов. Вы должны будете повторно опубликовать размещенный векторный слой из обновленного размещенного векторного слоя.
  • Есть некоторые ограничения использования стилей для размещенного векторного слоя, которые могут не позволить опубликовать размещённый слой листов.
  • Вы не можете опубликовать размещенный слой сцены из размещенного векторного слоя мультипатч или облака точек.

Выполните следующие шаги для публикации размещенного слоя листов из размещенного векторного слоя:

  1. Войдите в вашу организацию и щелкните Ресурсы > Мои ресурсы.
  2. Для публикации выполните одно из следующих действий:
    • Щелкните размещенный векторный слой, который вы хотите опубликовать, и выберите Опубликовать.
    • Щелкните Создать > Слой листов и выберите Векторный слой, который нужно опубликовать как кэшированный сервис.
  3. Введите название, теги и описание для размещенного слоя листов.
  4. Если администратором организации заданы ресурсы по категориям, щелкните Назначить категорию и выберите до 20 категорий, что поможет пользователям в поиске нужного элемента. Вы также можете использовать окно Фильтр категорий, чтобы сузить список категорий.
  5. Выберите папку, в которой будет храниться размещенный слой листов.
  6. Дополнительно можно изменить экстенты, при которых слой будет отображаться, перетащив маркеры бегунка Видимого диапазона.
    Внимание:

    Портал представляет вам предполагаемый диапазон масштабов, но его можно изменить. Не забывайте, что включение в диапазон крупных масштабов может значительно увеличить ресурсы, которые будут использованы на хост-сервере. Не создавайте листы, превышающие точность ваших данных.

  7. Нажмите OK.

    Как только слой листов будет создан, откроется его страница элемента.

Задание и публикация карты в ArcGIS Pro

Вы можете опубликовать размещенный слой листов из карты в ArcGIS Pro.

Примечание:

Если к слоям ArcGIS Pro применен определяющий запрос, ArcGIS применяет определяющий запрос к опубликованному размещенному слою листов. Но все данные копируются в ArcGIS Enterprise. Если вы желаете опубликовать поднабор этих данных, необходимо экспортировать этот поднабор в другой класс объектов и опубликовать уже другой класс объектов.

Веб-браузеры не могут отображать некоторые более сложные картографические символы, которые вы, возможно, использовали при создании своей карты. Большинство типов символов можно использовать, но в некоторых случаях при публикации символы могут быть упрощены. См. раздел Создание карт для публикации сервисов объектов в Справке ArcGIS Server, чтобы узнать о поддерживаемых символах и внести необходимые исправления в символы карт перед публикацией.

  1. Запустите ArcGIS Pro и откройте проект с картой, которую вы хотите опубликовать.
  2. Убедитесь, что ваше подключение к порталу активно и в том, что вы вошли в свою организацию под учетной записью, которой предоставлены права доступа для создания ресурсов и публикации размещенных слоев листов.
  3. Чтобы опубликовать слой листов, сделайте одно из следующего:
    • Выберите слои на панели Содержание. Щёлкните на выборке слоёв правой кнопкой мыши и выберите Опубликовать как веб-слой.
    • Чтобы опубликовать все слои карты, щелкните Веб-слой в группе Опубликовать как на вкладке Общий доступ и выберите Опубликовать веб-слой.

    Подсказка:

    Если опция меню Опубликовать как веб-слой не активна, возможно, причина в следующем:

    • Учетная запись, под который вы вошли, не имеет прав на публикацию размещенных слоев.
    • Портал не настроен на работу с хост-сервером, что необходимо для размещения веб-слоев.
    • Вы пытаетесь опубликовать векторный слой-мультипатч, что не поддерживается.

  4. Введите имя слоя листов.
  5. Выберите Лист для Тип слоя в Копировать все данные.

    Другие варианты опции Тип слоя будут автоматически отключены, поскольку при копировании одновременно может использоваться только одна опция.

  6. Введите краткое описание и теги слоя листов.
  7. По умолчанию слой будет сохранен в Мои ресурсы.

    Можно сохранить его в подпапку в Моих ресурсах, введя имя папки или указав путь к существующей папке.

  8. Укажите, кто получит доступ к размещенному слою листов.

    Все слои, которые вы опубликуете, будут автоматически доступны в разделе Мои ресурсы вашей организации, который является персональной рабочей областью. Ваши ресурсы будут недоступны для других, пока вы не предоставите доступ к ним при помощи одной или нескольких следующих опций:

    • Все – при выборе данной опции слой будет доступен всем, у кого есть доступ в организацию.
    • Имя вашей организации – выбор этой опции позволяет предоставить доступ к элементу всем авторизованным пользователям организации.
    • Группы – Можно открыть общий доступ для членов групп, к которым вы принадлежите, выбрав группы из ниспадающего списка.
  9. Щелкните Конфигурация и нажмите на кнопку Настроить свойства веб-слоя, чтобы задать настройки кэша.
  10. В Опциях выберите Схема листов.
  11. Измените положение бегунка Уровни детализации, чтобы указать минимальный и максимальный масштаб для вашего слоя листов.

    Размер выходного кэша будет меняться с изменением минимального и максимального масштабов.

  12. Выберите, когда и где будет построен кэш листов.
    • Выберите Кэшировать автоматически на сервере, если вы хотите, чтобы листы строились на хост-сервере в процессе публикации слоя.
    • Если вы хотите сохранить построенный кэш на хост-сервере, но при этом хотите построить его самостоятельно после публикации, выберите Кэшировать вручную на сервере, откройте слой листов на вебсайте портала после публикации слоя, и вручную постройте кэш.
    • Если вы хотите сохранить построенный кэш на одном из серверов ArcGIS Enterprise, но при этом хотите построить его самостоятельно после публикации, выберите Кэшировать вручную на сервере, откройте слой листов на вебсайте портала после публикации слоя, и вручную постройте кэш.
    • Выберите Кэшировать локально и укажите в качестве местоположения папку на компьютере с ArcGIS Pro для хранения временного пакета листов, если вы хотите построить кэш и упаковать его на компьютере с ArcGIS Pro. Пакет листов будет автоматически выгружен на хост-сервер для последующей распаковки и хранения кэша там же.
    • Выберите Кэшировать локально и укажите в качестве местоположения папку на компьютере с ArcGIS Pro для хранения временного пакета листов, если вы хотите построить кэш и упаковать его на компьютере с ArcGIS Pro. Пакет листов будет автоматически выгружен на ArcGIS Enterprise для последующей распаковки и хранения кэша там же.
  13. Чтобы позволить клиентам загружать листы кэша для автономного использования, отметьте Разрешить клиентам экспортировать листы кэша.
  14. Если вы отметили Разрешить клиентам экспортировать листы кэша, используйте поле Ограничить экспорт до для указания максимального количества листов, которое клиент может загрузить одним запросом.
  15. Чтобы вычислить количество листов и пространство, которое будет использовать для кэширования, откройте раздел Оценка и щелкните Вычислить.

    Вы можете изменить настройки кэша и вычислить снова, чтобы увидеть, как настройки влияют на кэш.

  16. Щелкните на вкладке Ресурсы, чтобы убедиться, что слой содержит нужные слои данных.
  17. Щелкните Анализировать для проверки на наличие ошибок и проблем.

    На вкладке Сообщения перечислены любые проблемы, обнаруженные при анализе . Щелкните правой кнопкой мыши на каждом сообщении, чтобы получить более подробную информацию, прочитать справку по данной ошибке и выбрать подходящее решение. Вам потребуется исправить ошибки перед публикацией. Можно устранить предупреждения, чтобы улучшить производительность и внешний вид размещенного слоя листов, но это не обязательно.

  18. После устранения ошибок и, в случае необходимости, предупреждений, щёлкните Опубликовать.
    Примечание:
    На этом шаге ваши данные копируются на сервер. Время, которое займет публикация, будет зависеть от размера данных, скорости и пропускной способности вашего Интернет-подключения.

По завершении публикации вы можете щелкнуть Управление веб-слоем, чтобы открыть веб-сайт портала.

Создание пакета листов в ArcGIS Pro и загрузка его в организацию

Воспользуйтесь инструментом геообработки Создать пакет листов карты для создания пакета листов, добавьте этот пакет в свою организацию и опубликуйте слой листов.

ArcGIS Pro 2.3 и более новые версии позволяют вам указать выходные данные этого инструмента геообработки как файл .tpk или файл .tpkx. Новый формат .tpkx использует упрощенную структуру файлов, которая обеспечивает повышенную производительность при работе в облаке и общих сетевых расположениях, и является форматом открытой спецификации. В данном случае вы можете использовать любой формат.

  1. Откройте проект, содержащий упаковываемые данные.
  2. Откройте и запустите инструмент геообработки Создать пакет листов карты.
  3. По окончании создания пакета листов войдите в организацию под учетной записью организации с правами доступа, необходимыми для создания ресурсов и публикации слоев листов, и щелкните Ресурсы > Мои ресурсы.
  4. Щелкните С моего компьютера, чтобы добавить пакет листов.
  5. Установите отметку напротив опции Опубликовать этот файл как размещенный слой.
  6. Введите заголовок.
  7. Если администратором организации заданы ресурсы по категориям, щелкните Назначить категорию и выберите до 20 категорий, что поможет пользователям в поиске нужного элемента.

    Вы также можете использовать окно Фильтр категорий, чтобы сузить список категорий.

  8. Введите теги, разделенные запятыми.

    Теги представляют собой слова или короткие фразы, описывающие элемент и облегчающие его поиск. Федеральная земля считается одним тегом, а Федеральная, земля уже расценивается как два тега.

  9. Нажмите кнопку Добавить элемент.

Листы распакованы и создан размещенный слой листов. В Моих ресурсах вы увидите листы карты и пакет листов.

Публикация больших пакетов листов

Для построения и публикации больших объемов данных, вместо предыдущего рабочего процесса Esri рекомендует использовать группу инструментов Полистный кэш. Эти инструменты используют преимущества многоядерных процессоров для повышения производительности построения и публикации листов.

В ArcGIS Pro выполните инструменты геообработки.

  1. Либо запустите инструмент геообработки Создать пакет листов карты, чтобы создать пакет геообработки за один шаг, либо запустите эти инструменты в указанном порядке:
    1. Запустите инструмент Построить схему листов кэша для определения сетки листов и формата изображений.
    2. Запустите инструмент Управление листами кэша для построения листов.
    3. Запустите инструмент Экспорт листов кэша для создания пакета листов.

    Чтобы сгенерировать кэш для определённых экстентов или уровней детальности, используйте три вышеупомянутых инструмента.

  2. Запустите инструмент Опубликовать пакет (в группе инструментов Пакет) для загрузки листов на ArcGIS Enterprise.
  3. По окончании создания пакета листов войдите в организацию под той же учетной записью, которая использовалась вами при создании пакета листов в ArcGIS Pro, и щелкните Ресурсы > Мои ресурсы.
  4. Щелкните пакет листов, чтобы увидеть страницу описания элемента.
  5. Щелкните Опубликовать.
  6. Введите заголовок и теги.
  7. Если администратором организации заданы ресурсы по категориям, щелкните Назначить категорию и выберите до 20 категорий, что поможет пользователям в поиске нужного элемента.

    Вы также можете использовать окно Фильтр категорий, чтобы сузить список категорий.

  8. Щелкните Опубликовать.

Листы распакованы и создан размещенный слой листов. Слой появится в Моих ресурсах.

Задание и публикация карты в ArcMap

Из ArcMap вы можете опубликовать слой листов на ArcGIS Enterprise.

Примечание:

Если к слоям ArcMap применен определяющий запрос, ArcGIS применяет определяющий запрос к опубликованному размещенному слою листов. Но все данные копируются в ArcGIS Enterprise. Если вы желаете опубликовать поднабор этих данных, необходимо экспортировать этот поднабор в другой класс объектов и опубликовать уже другой класс объектов.

Перед запуском ArcMap убедитесь в том, что ArcGIS Desktop подключен к вашему порталу.

  1. Запустите ArcMap и откройте карту, которую вы хотите опубликовать.
  2. Войдите на свой портал под учетной записью организации, имеющей права для создания ресурсов и публикации размещенных слоев листов.
    1. Щелкните Файл > Подключиться.
    2. Введите имя пользователя и пароль для вашего портала и щелкните Вход.
  3. Теперь опубликуйте карту.
  4. Щелкните Файл > Опубликовать как > Сервис.
  5. Выберите Опубликовать сервис и нажмите Далее.
    Внимание:

    Если вы выбрали опцию перезаписи сервиса, то существующий элемент листов карты удаляется с портала, и создается новый элемент с тем же именем. Новый элемент создается в корневой папке, и ему будет присвоен новый ID. Вам требуется перенастроить параметры доступа и при необходимости переместить элемент обратно в папку, в которой он находился до повторной публикации.

  6. В ниспадающем списке типов подключения выберите Мои размещенные сервисы. Затем введите имя для ваших листов и нажмите Продолжить.
  7. Укажите требуемые свойства в Редакторе сервисов.

    Здесь вы можете выбрать операции, которые пользователи смогут применять к листам, и указать, как листы будут предоставляться конечным пользователям. Более подробно об оптимальной настройке листов для развертывания см. раздел справки ArcGIS Server Настройка и конфигурирование сервисов. Некоторые из свойств, обсуждаемые в этом разделе, относятся только к ArcGIS Server и не применимы при работе с размещенными слоями листов.

    Подсказка:

    Если вы закроете окно Редактор сервисов во время данного сеанса, то появится запрос на сохранение вашей работы как черновика сервиса. Черновики сервисов позволяют вам позднее возвращаться к конфигурации сервиса. По умолчанию черновики сервисов сохраняются в папке Черновики подключения Мои размещенные карты. Дополнительную информацию см. в разделе О черновиках сервисов в Справке ArcGIS Server.

  8. Есть несколько свойств, которые используются только для размещенных слоев листов, и которые вам необходимо указать. Они подробно описаны в шагах ниже.
  9. В левой части окна Редактор сервиса щелкните Функции, затем Кэшированный сервис, чтобы опубликовать вашу карту в виде слоя листов. Включите опцию Доступ к объектам для публикации слоя пространственных объектов с вашими листами, если вы собираетесь настроить всплывающие окна для слоя при добавлении его в Map Viewer.

    Вы можете щелкнуть подпункт Использование листов кэша в левой части Редактора сервиса, чтобы задать дополнительные свойства, определяющие возможности клиентов при работе с опубликованным слоем листов.

  10. Щелкните пункт Кэширование, чтобы задать свойства листов кэша.

    См. Создание кэша карты в справке по ArcGIS Server для подробного описания шагов. Обратите внимание, что некоторые дополнительные настройки кэширования доступны только при публикации напрямую в ArcGIS Server.

  11. В Редакторе сервиса щелкните Описание элемента и введите краткое описание и теги для вашего слоя листов. Вам понадобится ввести эту информацию перед тем, как вы сможете опубликовать сервис.

    Более подробно см. в разделе описания элементов раздела Задание свойств картографического сервиса справки ArcGIS Server.

  12. В Редакторе сервиса щелкните Публикация и выберите, кому предоставить доступ к слою листов.

    По умолчанию размещенный слой листов является частным, то есть он доступен только для вас. Вы можете предоставить доступ к нему для всех, для всех участников вашей организации или для участников определенных групп.

  13. В окне Редактор сервисов щелкните Анализировать Анализировать (Analyze).

    Будет произведена проверка карты на возможность быть опубликованной. Перед публикацией необходимо исправить Ошибки Ошибка (Error), перечисленные в окне Подготовка. При необходимости можно устранить предупреждения и информационные сообщения для дальнейшего улучшения производительности и визуализации публикуемых листов.

  14. При необходимости, щелкните Предварительный просмотр Предварительный просмотр (Preview) в Редакторе сервиса.

    Тогда вы сможете увидеть, как размещенный слой листов будет выглядеть при просмотре в веб-браузере.

  15. После устранения ошибок и, при необходимости, любых сообщений и предупреждений, щелкните Опубликовать Опубликовать.
    Примечание:

    Сейчас ваши данные копируются на хост-сервер. Время, которое займет публикация, зависит от размера данных, скорости и пропускной способности канала вашего сетевого подключения. Для создания листов также потребуется некоторое время.

После публикации слоя листов вы увидите его, когда развернете узел Мои размещенные сервисы в окне Каталога.

Размещенный слой листов будет доступен на вкладке Мои ресурсы веб-сайта портала в виде двух независимых элементов: Листы и Определение сервиса. Определение сервиса – это архивный файл, содержащий карту, ее данные и настройки публикации листов. Определение сервиса можно передать и опубликовать на любом компьютере, где запущен ArcGIS Server.

Создание пакета листов в ArcMap и публикация

ArcMap позволяет создавать листы для документа карты и сохранять их в удобном для передачи файле пакета листов. Вы можете создать пакет листов в ArcMap, опубликовать его на портале и опубликовать его как размещенный слой листов.

Подсказка:

Если вы хотите настроить всплывающие окна, вместе с размещенным слоев листов необходимо опубликовать векторный слой.

Существует два способа создания и публикации пакета листов из ArcMap.

  • Для упаковки и публикации небольшого объема данных (менее 1 Гб), создайте и опубликуйте пакет листов непосредственно из карты. При публикации пакета на веб-сайте портала, сохраняются элементы документа карты, такие как, легенда и текстовые элементы.
  • Если объем ваших данных составляет более 1 Гб, для упаковки и публикации листов используйте инструменты геообработки. При публикации листов из пакета листов, такой способ сохраняет только данные, что увеличивает производительность создания листов.

В ArcMap 10.7 вы можете выбрать выходные данные для этого рабочего процесса: файл .tpk или .tpkx. Новый формат .tpkx использует упрощенную структуру файлов, которая обеспечивает повышенную производительность при работе в облаке и общих сетевых расположениях, и является форматом открытой спецификации. В обоих случаях вы можете использовать любой формат.

Публикация небольших пакетов листов

Если размер создаваемого в ArcMap пакета листов меньше 1 Гб, для публикации применяется следующий рабочий процесс:

  1. Откройте вашу карту в ArcMap.
  2. Войдите на портал с использованием учетной записи организации, у которой есть права на создание ресурсов и публикацию размещенных слоев листов.
  3. Щелкните Настройка > Опции ArcMap > Общий доступ и убедитесь, что включена опция Включить инструменты ArcGIS Runtime.

    Это даст возможность использовать меню опций, которые потребуются в следующем шаге.

  4. В ArcMap щелкните Файл > Опубликовать как > Пакет листов.
  5. В следующих подшагах настройте все параметры. Остальные настройки можете выбрать сами.
    1. На вкладке Пакет листов выберите Загрузить пакет в мою учетную запись ArcGIS Portal.
    2. На вкладке Формат листов выберите ArcGIS Online / Bing Maps / Google Maps в качестве Схемы листов.
    3. На вкладке Описание элемента введите все обязательные элементы.
    4. На вкладке Общий доступ вы можете выбрать, предоставить ли доступ для всех или только для определенных групп пользователей.
  6. Щёлкните Опубликовать.

    Вам может быть предложено сохранить карту перед тем, как ArcMap создаст пакет листов.

    Генерация пакета листов может занять некоторое время, особенно если вы включили крупные масштабы.

  7. Когда создание пакета листов будет завершено, войдите на портал под той же учетной записью, которая использовалась при создании пакета в ArcMap, и щелкните Ресурсы > Мои ресурсы.
  8. Щелкните пакет листов, чтобы увидеть страницу описания элемента.
  9. Щелкните Опубликовать.
  10. Введите название и теги и щелкните Опубликовать.

Листы распакованы, на портале создан размещенный слой листов. Слой появится в Моих ресурсах.

Публикация больших пакетов листов

Для построения и публикации больших объемов данных, вместо предыдущего рабочего процесса Esri рекомендует использовать группу инструментов Полистный кэш. Эти инструменты используют преимущества многоядерных процессоров для повышения производительности построения и публикации листов.

Выполните эти инструменты в следующем порядке:

  1. Запустите Построить схему листов кэша для определения сетки листов и формата изображений.
  2. Запустите Управление листами кэша для построения листов.
  3. Запустите Экспорт листов кэша для создания пакета листов.
  4. Запустите Опубликовать пакет (в группе инструментов Упаковка) для загрузки листов на портал.
  5. Когда создание пакета листов будет завершено, войдите на портал под той же учетной записью, которая использовалась при создании пакета в ArcMap, и щелкните Ресурсы > Мои ресурсы.
  6. Щелкните пакет листов, чтобы увидеть страницу описания элемента.
  7. Щелкните Опубликовать.
  8. Введите заголовок и теги.
  9. Если администратором организации заданы ресурсы по категориям, щелкните Назначить категорию и выберите до 20 категорий, что поможет пользователям в поиске нужного элемента.

    Вы также можете использовать окно Фильтр категорий, чтобы сузить список категорий.

  10. Щелкните Опубликовать.

Листы распакованы, на портале создан размещенный слой листов. Слой появится в Моих ресурсах.

Публикация из файла определения сервиса

Публикация листов и построение кэша может использовать много ресурсов сервера. Если вам необходимо опубликовать большое количество слоев листов, то ваши авторы карт могут создать файлы определения сервиса (.sd) в ArcMap или ArcGIS Pro, которые будут содержать данные, символы и другую информацию, требуемую для публикации слоя листов на портале. Затем можно использовать скрипт для загрузки и публикации файлов определения сервиса на вашем портале в нерабочее время. Полученные слои листов будет размещены на хост-сервере.

Создание файла определения сервиса

См. Сохранить файл определения сервиса, чтобы узнать подробные инструкции о создании такого файла в ArcGIS Pro.

Следуйте этим инструкциям, чтобы создать файл определения сервиса в ArcMap.

  1. Запустите ArcMap и войдите на портал.
  2. Создайте и сохраните карту.

    Подробнее о создании и публикации карты см. разделы о картографических сервисах справочной системы ArcGIS Server.

  3. Теперь создайте файл определения сервиса.
  4. Щелкните Файл > Опубликовать как > Сервис.
  5. Выберите пункт Сохранить файл определения сервиса и щелкните Далее.
  6. Щелкните Выбрать подключение и выберите Мои размещенные сервисы из ниспадающего списка.
  7. Введите имя файла и щелкните Далее.
  8. Укажите, в каком каталоге на вашем клиентском компьютере будет создан файл определения сервиса, и нажмите Продолжить.

    Появится окно Редактор сервисов.

  9. На левой панели Редактора сервисов щелкните Кэширование.
  10. Выберите Схема листов.
  11. Выберите минимальный и максимальный масштабы для листов и Вычислить размер кэша.
  12. Щелкните Построить кэш вручную после публикации сервиса.
  13. Вы также можете щелкнуть Дополнительные настройки и указать дополнительные настройки для кэша листов.
  14. На левой панели Редактора сервисов щелкните Описание элемента и введите описание слоя листов.

    Необходимо ввести хотя бы краткое описание и теги, прежде чем создавать файл определения сервиса.

  15. Щелкните Анализировать Анализировать (Analyze), чтобы удостовериться в отсутствии ошибок.

    Вы должны исправить любые ошибки до формирования файла определения сервиса. Вы также можете исправить полученные предупреждения и сообщения.

  16. После устранения ошибок и, возможно, сообщений и предупреждений щелкните Разместить Этап.

Файл определения сервиса сохраняется в выбранном вами местоположении.

Загрузка и публикация файла определения сервиса

Если у вас есть файл определения сервиса от автора, то вы можете вручную загрузить его на портал и опубликовать слой листов или запланировать запуск скрипта для загрузки и публикации файла.

Загрузка и публикация вручную

Войдите на веб-сайт портала для добавления и публикации файла определения сервиса на вашем портале.

  1. Войдите на портал как участник с правами на создание ресурсов и публикацию размещенных слоев листов и щелкните Ресурсы > Мои ресурсы.
  2. Нажмите кнопку Добавить элемент.
  3. Выберите для загрузки файл с вашего компьютера.
  4. Щелкните кнопку обзора и выберите файл определения сервиса.
  5. Щелкните Опубликовать данный файл как сервис.
  6. Если администратор портала настроил категории ресурсов, нажмите Назначить категорию и выберите вплоть до 20 категорий, чтобы облегчить поиск элемента.

    Вы также можете использовать окно Фильтр категорий, чтобы сузить список категорий.

  7. Введите теги, разделенные запятыми.

    Теги представляют собой слова или короткие фразы, описывающие элемент и облегчающие его поиск. Федеральная земля считается одним тегом, а Федеральная, земля уже расценивается как два тега.

  8. Щелкните Добавить элемент, чтобы добавить файл определения сервиса и опубликовать слой листов.

    Слой листов публикуется на сервере вашего портала, и определение сервиса и слои добавляются в Мои ресурсы.

  9. Когда слой листов будет опубликован, появится опция Начать построение листов. Щелкните эту ссылку, чтобы создать листы.

По умолчанию только вы имеете доступ к файлу определения сервиса и размещенному слою листов. Вы можете предоставить доступ к файлу и листам другим пользователям в вашей организации или участникам определенных групп.

Запуск скрипта для загрузки и публикации

Для загрузки и публикации файла определения сервиса в нерабочее время спланируйте автоматический запуск следующего скрипта на компьютере GIS Server:

  1. Создайте на компьютере текстовый файл с расширением .py и скопируйте в него следующий скрипт.

    import os, sys, json, urllib, urllib2, httplib, urlparse, mimetools, mimetypes
    from cStringIO import StringIO
    
    # generates a new token from Portal
    def generate_token(baseurl, username, password):
        tokenUrl = urlparse.urljoin(baseurl, 'sharing/generateToken')
        postdata = { 'username': username, 'password': password,
                   'client': 'requestip', 'expiration': 60, 'f': 'json' }
        encoded_postdata = urllib.urlencode(postdata)
        opener = urllib2.build_opener()
        try: resp = opener.open(tokenUrl, data=encoded_postdata)
        except urllib2.HTTPError as e: raise Exception('Unable to connect to Portal, please check the url: {} {}'.format(e.code, e.reason))
        resp_json = json.loads(resp.read())
        if 'error' in resp_json: raise Exception('\n'.join(resp_json['error']['details']))
        return resp_json['token']
        sys.exit(1)
    
    # create proper multi-part POST request data
    def _encode_multipart_formdata(fields, files):
        boundary = mimetools.choose_boundary()
        buf = StringIO()
        for (key, value) in fields.iteritems():
            buf.write('--%s\r\n' % boundary)
            buf.write('Content-Disposition: form-data; name="%s"' % key)
            buf.write('\r\n\r\n%s\r\n' % str(value))
        for (key, filepath, filename) in files:
            buf.write('--%s\r\n' % boundary)
            buf.write('Content-Disposition: form-data; name="%s"; filename="%s"\r\n' % (key, filename))
            buf.write('Content-Type: %s\r\n' % (mimetypes.guess_type(filename)[0] or 'application/octet-stream'))
            f = open(filepath, "rb")
            try:
                buf.write('\r\n' + f.read() + '\r\n')
            finally:
                f.close()
        buf.write('--' + boundary + '--\r\n\r\n')
        buf = buf.getvalue()
        return boundary, buf
    
    # send multi-part POST request
    def _postmultipart(host, selector, fields, files, ssl):
        boundary, body = _encode_multipart_formdata(fields, files)
        headers = { 'Content-Type': 'multipart/form-data; boundary={0}'.format(boundary) }
        if ssl: h = httplib.HTTPSConnection(host)
        else: h = httplib.HTTPConnection(host)
        
        h.request('POST', selector, body, headers)
        resp = h.getresponse()
    
        return resp.read()
    
    # first upload the SD file and create an item in Portal
    def addSDItem(baseurl, user, token, title, file, folder = ''):
        addUrl = 'sharing/rest/content/users/{}/{}addItem'
        if folder != '': addUrl = addUrl.format(user, folder + '/')
        else: addUrl = addUrl.format(user, '')
        
        url = urlparse.urljoin(baseurl, addUrl)
    
        files = [('file', file, os.path.split(file)[1])]
        fields = { 'token' : token, 'f' : 'json', 'type' : 'Service Definition', 'title' : title, 
                   'tags' : 'sampletag', 'name': title, 'typeKeywords' : 'Data, Service Definition, ArcGIS, sd' }
    
        ssl = url.startswith('https://')
        
        parsed_url = urlparse.urlparse(url)
        
        print('Uploading {} to {}..'.format(file, baseurl))
        resp = _postmultipart(parsed_url.netloc, str(parsed_url.path), fields, files, ssl)
        resp_json = json.loads(resp)
    
        if 'error' in resp_json:
          raise Exception('Unable to upload file {}: {}'.format(file, resp_json['error']['message']))
        
        return resp_json['id']
        
    # second publish the uploaded SD item as a new tiled service
    def publishTiles(baseurl, user, token, itemid):
        publishUrl = urlparse.urljoin(baseurl, 'sharing/rest/content/users/{}/publish'.format(user))
        query_dict= { 'f' : 'json', 'token': token, 'itemid': itemid, 'buildInitialCache' : True,
                      'publishParameters' : { 'name' : 'cities' }, 'fileType': 'serviceDefinition' }
                      
        query_string = urllib.urlencode(query_dict)
        print('Publishing tile service from item..')
        response = urllib.urlopen(publishUrl, query_string)
            
        resp_json = json.loads(response.read())
        
        if 'error' in resp_json: raise Exception('Unable to publish item: {}'.format(resp_json['error']['message']))
    
    # read input from command line when run as a standalone script
    if __name__ == '__main__':
        try: 
          url = sys.argv[1]
          user = sys.argv[2]
          password = sys.argv[3]
          f = sys.argv[4]
          title = sys.argv[5]
          if not url.endswith('/'): url += '/' # make sure the url ends with /
        except: # if too few parameters are passed on command line, show usage help
          print('Usage: ')
          print('       publishServiceItem.py [portalUrl] [userName] [password] [sdFilePath] [titleOfServiceItem]')
          print('')
          print('portalUrl           The secure url to the portal, e.g. https://portalmachine.example.com/arcgis/')
          print('userName            The username of a user to publish the service.')
          print('                    This user must have the required publishing privileges.')
          print('password            The password of the user')
          print('sdFilePath          Path to the .sd file containing the service definition')
          print('                    E.g. c:\\temp\cachedService.sd')
          print('titleOfServiceItem  The title to assign to the published item in the portal.')
          sys.exit(1)  
    
        token = generate_token(url, user, password)
    
        id = addSDItem(url, user, token, title, f)
        publishTiles(url, user, token, id)
        print('Publishing complete. Tile generation has been started and may take a while to finish.')

  2. Создайте командный файл или скрипт оболочки, который позволит спланировать автоматический запуск скрипта Python.
  3. В этом файле произведите запуск скрипта Python, указав нужные настройки для вашего сайта.

    Например, чтобы запустить файл publishServiceItem.py, укажите URL вашего портала, имя и пароль пользователя, из-под которого будет произведен вход, путь к файлу определения сервиса и название сервиса, который будет создан. В этом примере были использованы такие значения: URL портала – https://portal.domain.com/arcgis/, имя пользователя – pub1, пароль пользователя – pub.1, путь к файлу определения сервиса – C:\maps\SDs\mymap.sd, имя сервиса: studytiles.

    publishServiceItem.py https://portal.domain.com/arcgis/ pub1 pub.1 C:\maps\SDs\mymap.sd studytiles

  4. Спланируйте автоматический запуск вашего скрипта во время минимальной нагрузки на портал.

    Для получения информации о настройке запланированного запуска скрипта см. раздел справки по геообработке в ArcGIS Планирование запуска скрипта Python в определенное время.