Использование слоев веб-сцен

Слои сцены представляют большие геопространственные данные в 3D, это помогает вашей аудитории понимать и изучать географическую информацию в более реалистичном виде. Слои сцен – это кэшированные слои, оптимизированные для отображения большого количества 3D-ресурсов. Слои сцены могут включать 3D-точки, облака точек, 3D-объекты, здания и интегрированные модели mesh и вокселы. Слой сцены соответствует спецификации Индексированного слоя 3D сцены (I3S). Слои сцены могут быть опубликованы в ArcGIS Online и ArcGIS Enterprise в виде слоев веб-сцен. Слои сцены могут ссылаться не множество разных источников, которые описаны в этой статье.

Источники слоев сцены
Показаны опции развертывания и управления данными для слоев сцен.

Пакет слоя сцены (.slpk)

Пакеты слоев сцен разработаны для быстрого переноса 3D-данных одним файлом. Пакет слоя сцены можно посмотреть в настольном клиенте, например, AllSource или ArcGIS Earth, либо выгрузить и опубликовать в ArcGIS Online или ArcGIS Enterprise.

Также вы можете опубликовать файл .slpk на ArcGIS Enterprise или ArcGIS Online с помощью инструмента Опубликовать пакет, чтобы создать слой веб-сцены. Это рекомендуемые инструкции при публикации пакетов слоя сцен, чей вес превышает 500 ГБ. Для пакетов слоев сцен, которые меньше 500 ГБ для загрузки и публикации слоев веб-сце можно использовать основное приложение Portal for ArcGIS.

Индексированный слой 3D сцены REST (.i3sREST)

Формат .i3sREST основан на JSON, REST и современных веб-стандартах. Формат .i3sREST оптимизирован для обработки, анализа и отрисовки веб-клиентов при хранении в облачных хранилищах, например, хранилищах Amazon S3, Azure Blob,Alibaba OSS или Google Cloud. Формат .i3sREST обслуживается непосредственно из хранилища данных, это обеспечивает улучшенную масштабируемость в ArcGIS Enterprise.

Готовый к использованию формат .i3sREST лучше всего подходит для ресурсов слоя сцен, размер которых превышает 200 ГБ. Вы можете создать .i3sREST в AllSource. После того, как ресурс слоя сцены станет доступным в облачном хранилище, вы можете опубликовать его как слой сцены с помощью ArcGIS API for Python на ArcGIS Enterprise 10.8.1 и выше.

Распакованный пакет слоя сцены (.eslpk)

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

Вы можете создать распакованный пакет слоя сцены с помощью инструмента Извлечь пакет. После того, как содержимое слоя сцены станет доступным в директориях файловой системы или в локальном хранилище объектов, совместимом с Amazon S3, таком как MinIO, вы можете опубликовать его как слой сцены с помощью ArcGIS API for Python в ArcGIS Enterprise 10.8.1 и выше.

Примечание:

Содержимое слоя сцены в форматах .eslpk или .i3sREST не поддерживается в ArcGIS Online.

I3S – Сервис индексированного слоя 3D-сцен

В дополнение к .slpk, .i3sREST и .eslpk вы можете создать слой сцены непосредственно в ArcGIS Enterprise или ArcGIS Online, опубликовав отдельные слои веб-сцен или веб-сцены из AllSource. 3D-точки, мультипатч или слои зданий можно опубликовать с помощью связанного векторного слоя. Это обеспечивает дополнительные возможности анализа и редактирования, которые недоступны для слоев веб-сцены, опубликованных из пакетов слоев сцены.

Инструменты, создающие ресурс слоя сцены

AllSource поддерживает создаине ресурса слоя сцены в разных форматах в следующих инструментах геообработки.

Публикация слоя сцены с помощью ArcGIS API for Python

Слои сцены в форматах .eslpk или .i3sREST могут быть опубликованы в ArcGIS Enterprise с помощью ArcGIS API for Python.

Примечание:

Необходимо следующее:

  • Ресурс слоя сцены в готовом для обслуживания формате
  • Права роли Publisher в ArcGIS Enterprise

  1. Добавьте местоположение, где находится ресурс слоя сцены, в качестве элемента хранилища данных на свой портал. см. Элементы облачного хранилища, чтобы узнать, как настроить строку подключения для поддерживаемых облачных хранилищ.
    import json
    from arcgis.gis import GIS
    
    # Connect to your GIS
    # Create a connection to your portal for publishing
    gis=GIS(url="https://my_portal_name/portal", username="my_username", password="my_pwd")
    
    # Step 1a.  Create a user managed data store item configuration for AWS cloud store with scene content
    # path to the i3srest content 
    ds_config = {"provider": "amazon",
                 "type": "cloudStore",
                 "path": "/cloudStores/mys3",
                 "info": {"isManaged": False,
                 "connectionString": "{\"credentialType\":\"accesskey\",\"accessKeyId\":\"MY_ACCESS_KEY\",
                  \"secretAccessKey\":\"MY_SECRET_ACCESS_KEY\",\"region\":\"us-west-1\",
                  \"defaultEndpointsProtocol\":\"https\"}", "objectStore": "MY_AWS_BUCKET"}} 
    txt = json.dumps(ds_config)
    txt = json.dumps(ds_config)
    
    # Step1b. 
    # Add data store as an item to my portal
    ds_item = gis.content.add(
                {
                'title' : "title_for_my_folder_data_store",
                'type' : "Data Store",# must be this
                'tags' : "Scene content",
                'text' : txt
                })
    ds_item

  2. Зарегистрируйте папку или облачное хранилище данных на подходящем интегрированном сервере на портале ArcGIS Enterprise.
    # Step 2:  Register the data store item to a server federated to ArcGIS Enterprise
    # The server can be either Hosting or Federated server
    
    server_list = gis.admin.federation.servers
    server_list
    
    server_id = None
    for server in server_list['servers']:
        if server['serverRole'] == 'HOSTING_SERVER':
            server_id = server['id']
            break
    if server_id is None:
        raise Exception("Cannot find HOSTING SERVER on this Enterprise configuration")
    
    server_id
    gis.datastore.register(item=ds_item, server_id=server_id)

  3. Пролистайте содержимое хранилища данных, чтобы выбрать папку с нужным ресурсом слоя сцены.
    ## Step 3. List the contents of my data store item 
    ds = gis.datastore
    desc = ds.describe(item=ds_item.id, server_id=server_id, path='/', store_type='datastore').result()
    cache_store_id = desc['definition']['datastoreId']

  4. Опубликуйте ресурс слоя сцены, находящийся в хранилище данных.
    ## Step 4a. Create a dictionary for your service configuration
    service_conf= {
      "type": "SceneServer",
      "serviceName": "name_of_scene_layer",
      "properties": {
        "pathInCachedStore" : "/myscene_content.i3srest",
        "cacheStoreId": cache_store_id,
      }
    }
    service_conf
    
    ## Step 4b. Publish the scene layer content 
    ##          located in data store managed by you as a scene layer
    
    ds.publish(config=service_conf, server_id=server_id, folder="/",
                     description="pointsceneLayer by python API", 
                     tags="pythonAPI test").result()
    
    ## My scene layer is published and now is serving content directly from my data store

Слой сцены теперь опубликован из облачного хранилища.