The GIS Professional Group

フィーチャ レイヤーのデータ ソースの設定を更新

# マップに2つのエンター プライズ ジオデータベースのフィーチャクラスをソースとするフィーチャ レイヤーが追加されており、2番目のレイヤーの接続設定を1番目のレイヤーに割り当てる

# プロジェクトの取得
aprx = arcpy.mp.ArcGISProject('current')

# レイヤー情報の習得
lyr0 = aprx.listMaps()[0].listLayers()[0]
lyr1 = aprx.listMaps()[0].listLayers()[1]

# データベース コネクション プロパティの習得
lyr0_dict = lyr0.connectionProperties
lyr1_dict = lyr1.connectionProperties

# 接続プロパティを文字列で更新(PostgreSQLのEnterprise Geodatabase場合)
# 接続プロパティはデータベースの種類やレイヤー タイプによって異なるため適宜修正してください。
lyr1_dict_replace = {'dataset': '<データセット名>', 'workspace_factory': 'SDE', 'connection_info': {'authentication_mode': 'DBMS', 'database': '<データベース名>', 'dbclient': 'postgresql', 'db_connection_properties': '<サーバー名>', 'password': '<パスワード>', 'instance': 'sde:postgresql:<サーバー名>', 'server': '<サーバー名>', 'user': '<データベースの管理者ユーザー名>', 'version': 'sde.DEFAULT'}}

# 接続情報の更新(レイヤー)
# lyr0.updateConnectionProperties(lyr0_dict,lyr0_dict_replace)
lyr0.updateConnectionProperties(lyr0_dict,lyr1_dict)

  • B!