Verwenden von Webszenen-Layern

Szenen-Layer stellen große räumliche Daten in 3D dar. Mit ihrer Hilfe kann Ihre Zielgruppe geographische Informationen leichter realistisch einordnen und erleben. Szenen-Layer sind gecachte Layer, die für die Anzeige einer großen Anzahl von 3D-Inhalten optimiert sind. Szenen-Layer können 3D-Punkte, Punktwolken, 3D-Objekte, Gebäude, integrierte Meshes und Voxel enthalten. Der Szenen-Layer ist mit der Spezifikation Indexed 3D Scene Layer (I3S) kompatibel. Szenen-Layer können als Webszenen-Layer für ArcGIS Online und ArcGIS Enterprise freigegeben werden. Szenen-Layer können viele verschiedene Quellen referenzieren, die in diesem Thema erläutert werden.

Quellen von Szenen-Layern
In dieser Abbildung werden Bereitstellungs- und Datenmanagement-Optionen für Szenen-Layer gezeigt.

Szenen-Layer-Paket (.slpk)

Szenen-Layer-Pakete sind dafür konzipiert, 3D-Daten schnell als einzelne Datei zu übertragen. Szenen-Layer-Pakete können in einem Desktop-Client wie ArcGIS Pro oder ArcGIS Earth angezeigt oder in ArcGIS Online oder ArcGIS Enterprise hochgeladen und veröffentlicht werden.

Mit dem Werkzeug Paket freigeben können Sie die .slpk-Datei auch in ArcGIS Enterprise oder ArcGIS Online veröffentlichen, um einen Webszenen-Layer zu erstellen. Dieser Workflow wird empfohlen, wenn Szenen-Layer-Pakete mit einer Größe von mehr als 500 GB veröffentlicht werden. Szenen-Layer-Pakete, die kleiner als 500 GB sind, können mit der Portal for ArcGIS-Startanwendung als Webszenen-Layer hochgeladen und veröffentlicht werden.

Indexed 3D Scene Layer REST (.i3sREST)

Das .i3sREST-Format basiert auf JSON, REST und modernen Webstandards. Das .i3sREST-Format wurde für die Verarbeitung, die Analyse und das Rendering in Webclients optimiert, wenn die Speicherung in Cloud-Speichern wie Amazon S3, Azure Blob-Speichern, Alibaba OSS oder Google Cloud erfolgt. Das .i3sREST-Format wird direkt über den Data Store bereitgestellt und ermöglicht eine verbesserte Skalierbarkeit in ArcGIS Enterprise.

Das sofort einsatzbereite .i3sREST-Format eignet sich am besten für Szenen-Layer-Inhalt mit einer Größe von mehr als 200 GB. Sie können .i3sREST in ArcGIS Pro erstellen. Nachdem der Szenen-Layer-Inhalt im Cloud-Speicher zur Verfügung gestellt wurde, können Sie ihn mit ArcGIS API for Python in ArcGIS Enterprise 10.8.1 und höher veröffentlichen.

Extrahiertes Szenen-Layer-Paket (.eslpk)

Das .eslpk-Format ist ein nicht archiviertes Ordnerverzeichnis eines Szenen-Layer-Pakets, das sich für Dateisysteme eignet. Dieses I3S-Format kann mit einem Kachel-Handler, der für die Verarbeitung von Dateierweiterungen konzipiert wurde, bereitgestellt werden. Extrahierte Szenen-Layer-Pakete eignen sich für ArcGIS Enterprise.

Sie können ein extrahiertes Szenen-Layer-Paket mit dem Werkzeug "Paket extrahieren" erstellen. Nachdem der Szenen-Layer-Inhalt in den Verzeichnissen von Dateisystemen oder in einem mit Amazon S3 kompatiblen lokalen Objektspeicher wie MinIO zur Verfügung gestellt wurde, können Sie ihn mit der ArcGIS API for Python in ArcGIS Enterprise 10.8.1 und höher veröffentlichen.

Hinweis:

Szenen-Layer-Inhalt im .eslpk- oder .i3sREST-Format wird in ArcGIS Online nicht unterstützt.

I3S – Indexed 3D Scene (Service)

Sie können einen Szenen-Layer nicht nur im .slpk-, .i3sREST- oder .eslpk-Format erstellen, sondern auch direkt in ArcGIS Enterprise oder ArcGIS Online. Geben Sie dazu einzelne Webszenen-Layer oder Webszenen aus ArcGIS Pro frei. 3D-Punkt-, Multipatch- oder Gebäude-Layer können über einen verknüpften Feature-Layer freigegeben werden. Dies ermöglicht zusätzliche Analyse- und Bearbeitungsfunktionen, die bei aus Szenen-Layer-Paketen veröffentlichten Webszenen-Layern nicht möglich sind.

Werkzeuge, mit denen Szenen-Layer-Inhalt erstellt wird

ArcGIS Pro unterstützt die Erstellung von Szenen-Layer-Inhalt in verschiedenen Formaten in den folgenden Geoverarbeitungswerkzeugen.

Szenen-Layer mit der ArcGIS API for Python veröffentlichen

Szenen-Layer im .eslpk- oder .i3sREST-Format können mit der ArcGIS API for Python in ArcGIS Enterprise veröffentlicht werden.

Hinweis:

Die folgenden Angaben sind erforderlich:

  • Szeneninhalt im sofort einsatzfähigen Format
  • Publisher-Rollenberechtigungen in ArcGIS Enterprise

  1. Fügen Sie den Speicherort des Szenen-Layer-Inhalts als Data-Store-Element zum Portal hinzu. Informationen zum Einrichten einer Verbindungszeichenfolge für unterstützte Cloud-Speicher finden Sie unter Cloud Store items.
    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. Registrieren Sie den Ordner oder Cloud Data Store beim gewünschten Verbundserver im ArcGIS Enterprise-Portal.
    # 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. Listen Sie den Inhalt des Data Store auf, um den Ordner mit dem gewünschten Szenen-Layer-Inhalt auszuwählen.
    ## 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. Veröffentlichen Sie den im Data Store befindlichen Szenen-Layer-Inhalt.
    ## 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

Der Szenen-Layer wird nun aus dem Cloud-Speicher veröffentlicht.