Web シーン レイヤーの使用

シーン レイヤーは、大容量の地理空間データを 3D で表現し、対象ユーザーがより写実的な方法で地理情報を理解して操作することを容易にします。 シーン レイヤーはキャッシュされたレイヤーであり、大量の 3D コンテンツの表示に最適です。 シーン レイヤーには、3D ポイント、点群、3D オブジェクト、ビルディング、3D メッシュ、およびボクセルを含めることができます。 シーン レイヤーは I3S (Indexed 3D Scene layer) 仕様に準拠しています。 シーン レイヤーは ArcGIS Online および ArcGIS Enterprise で Web シーン レイヤーとして共有できます。 シーン レイヤーは多くの異なるソースを参照でき、このトピックでは、これらのソースについて説明します。

シーン レイヤーのソース
シーン レイヤーの配置およびデータ管理オプションが表示されています。

シーン レイヤー パッケージ (*.slpk)

シーン レイヤー パッケージは、3D データを単一のファイルとして迅速に転送するように設計されています。 シーン レイヤー パッケージは ArcGIS ProArcGIS Earth などのデスクトップ クライアントで表示したり、ArcGIS Online または ArcGIS Enterprise にアップロードして公開したりできます。

また、[パッケージの共有 (Share Package)] ツールを使用して Web シーン レイヤーを作成し、*.slpk ファイルを ArcGIS Enterprise または ArcGIS Online に公開することもできます。 これは、500 GB を超えるシーン レイヤー パッケージを公開する場合に推奨されるワークフローです。 シーン レイヤー パッケージのサイズが 500 GB 未満の場合は、Portal for ArcGIS ホーム アプリケーションを使用して、Web シーン レイヤーをアップロードして公開できます。

I3S (Indexed 3D Scene layer) REST (*.i3sREST)

*.i3sREST 形式は、JSON、REST、および最新の Web 規格に基づきます。 *.i3sREST 形式は、Amazon S3Azure Blob ストア、Alibaba OSSGoogle Cloud などのクラウド ストアに格納されたときに Web クライアントが処理、解析、レンダリングを行えるように最適化されています。 *.i3sREST 形式は、データ ストアから直接提供され、ArcGIS Enterprise でのスケーラビリティを向上させることができます。

すぐに利用できる *.i3sREST 形式は、200 GB を超えるシーン レイヤー コンテンツに最も適しています。 *.i3sRESTArcGIS Pro で作成できます。 シーン レイヤー コンテンツがクラウド ストアで利用可能になったら、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 で直接、ArcGIS Pro の個別の Web シーン レイヤーまたは Web シーンを共有することでシーン レイヤーを作成できます。3D ポイント レイヤー、マルチパッチ レイヤー、またはビルディング レイヤーを関連付けられたフィーチャ レイヤーと共に共有できます。 この場合、シーン レイヤー パッケージから公開された Web シーン レイヤーでは使用できない追加の解析および編集機能が得られます。

シーン レイヤー コンテンツを作成するツール

ArcGIS Pro では、次のジオプロセシング ツールを使用した各種形式のシーン レイヤー コンテンツの作成がサポートされています。

ArcGIS API for Python を使用したシーン レイヤーの公開

*.eslpk または *.i3sREST 形式のシーン レイヤーは、ArcGIS API for Python を使用して ArcGIS Enterprise に公開できます。

注意:

以下が必要です。

  • すぐに利用できる形式のシーン コンテンツ
  • 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

これで、シーン レイヤーがクラウド ストアから公開されます。