ArcGIS publicado en el conjunto de recursos para desarrolladores"Clonación de ítems"La página presenta los conceptos básicos sobre la clonación de ítems, y en la publicación anterior"Python para duplicar ítems en otra cuenta deArcGIS ¡lo exploramos!se introdujeron varios tipos de clonación de ítems.
En este artículo, como extensión de la clonación de ítems,Esri Developer documentación presenta el parámetro clone_items(), enfocándonos en los parámetros search_existing_items y owner.
Índice
1. Parámetro search_existing_items
2. Parámetro owner 3. Diferencias entre ArcGIS Assistant y
clone_items()
Sobre el parámetro search_existing_items
Al usar clone_items() se puede establecer el parámetro llamado search_existing_items, que decide si clonar nuevamente un ítem que ya existe. El valor predeterminado es True.
Para entender este parámetro, también es necesario conocer el elemento llamado typekeywords, que representa las características internas del ítem.
Al clonar un ítem, al ítem clonado se le añade automáticamente el elemento typekeywords, además del source-<ID del ítem original>, que es un tipo de typekeywords.
Veamos con más detalle un ejemplo de clonación de un mapa web.
Web マップが存在しないことを確認します。フィーチャ レイヤーについては Instant Apps のアプリのクローンによって既にソースが同一のアイテムが存在しているのでクローンはされずに、Web マップ側の参照ソースが同一であるアイテムを参照するように変更されます。
図 1-3
もう少し詳しく見てみましょう。 クローン元のある Web マップを JSON として見るとこのようになります。
図 1-4
操作レイヤーとして「インスタント用レイヤー」が参照されています。
図 1-5
操作レイヤーである「インスタント用レイヤー」を JSON で見てみましょう。
図 1-6
今度は、クローンされた Web マップを見てみましょう。source-ID としてクローン元のアイテム ID が入っていることがわかります。
図 1-7
Web マップの操作レイヤーが記載されている部分です。
図 1-8
クローン先で参照されているフィーチャ レイヤーです。
図 1-9
これら図 1-4 から図 1-9 までの 6 枚の JSON の図と先ほどのクローンの概念図を合わせてこの章の冒頭の説明と照らし合わせていきます。
- クローンを行うと source-<Web Map ID> という形で typekeywords に説明が追加される (ここでは Web マップの ID 9c~ がクローン先で source-9c~として書かれている)
- clone_items() を実行する際に 参照しているインスタント用レイヤー (ID 3044~) がクローン先アカウントでsource-3044~として存在するかどうかを検索して同一アイテムの存在を判定する
- 今回は既に Instant Apps でレイヤーをクローンしているので、そのアイテムが同一アイテムとして判定されている (図 1-9 typekeywords を参照)
今回の例ではこのようにして同一アイテムの存在を確認し、 search_existing_items を True にした場合にクローンをしないようにしています。
owner パラメーター
clone_items() には owner パラメーターが存在し、アイテムをクローンする対象を設定することができます。この記事では以下の図のように、ある組織のユーザーが別の組織の管理者アカウントにログインし、別の組織の管理者でない特定のユーザーに向けてアイテムをクローンする流れを想定して実行します。
図 2-1
まずは図 2-2のように owner パラメーターを設定しないでクローンをしてみます。クローンする対象は フィーチャ レイヤーを参照している Web マップです。
図 2-2
図 2-3 はクローン先としている ArcGIS Enterprise の管理者アカウントのコンテンツです。このように宛先を指定しないとターゲットとしてログインしているユーザーのコンテンツへクローンされます。
図 2-3
次に、owner パラメーターを設定して実行してみます。owner パラメーターにクローン先の組織にいる公開者のアカウントのユーザー名を指定し、folder パラメーターにはユーザーが所有するフォルダ名を指定します。
図 2-4
実行後のユーザーでログインした時のマイ コンテンツの画面が以下になります。
図 2-5
また、公開者側でアイテムを確認するとアイテムのオーナーが管理者でなく、公開者となっていることがわかります。
図 2-6
ArcGIS Assistant の Copy Item との違い
ArcGIS Assistant(国内未サポート)には、Copy Item というアイテムを他のアカウントにコピーできる機能があります。 clone_items と比べて、Copy Item は UI 上で一つ一つアイテムを別アカウントにコピーできる特徴があります。 Copy Item は ArcGIS Online や ArcGIS Enterprise と同じような UI からアイテムを扱うことができること、そしてコードを書かずに UI 操作のみでアイテムのコピーができることがメリットです。
図 3-1
ただし、Copy Item は clone_items() と異なり、アイテムの参照関係は考慮されずにコピーされてしまうデメリットがあるので、使う対象には注意が必要です。 従って、次のような場面では ArcGIS Assistant の Copy Item が有効な場合があります。
・フィーチャ レイヤーや CSV ファイルのような参照を持たないアイテムの場合
・Web マップなど参照がアイテム内に存在するが、参照先アイテムがパブリックになっている場合
図 3-2
ここでは、有効である一例として ArcGIS StoryMaps を紹介します。 題材となる ストーリー マップは次の画像のようにエクスプレス マップを利用し、多くのポイントや画像が含まれています。
図 3-3
このストーリー マップはエクスプレス マップを利用しているので、他アイテムの参照がありません。 アイテム ID の参照の崩れを心配する必要がないので ArcGIS Assistant の Copy Item を使うこともできます。
もちろん clone_items() はこれまでに紹介してきたすべてのコンテンツに対して実行できますが、クローン対象がフィーチャ レイヤーやストーリー マップで、なるべく UI で操作を行いたいといった場合には Copy Item でアイテムの移行を行うことも可能です。Web マップや ArcGIS Experience Builder などのアプリケーションがクローンの対象になった場合は clone_items() を使用するようにしてください。
さいごに
本記事では、「アイテムのクローン」、「Python を使って他のArcGIS アカウントにアイテムを複製してみよう!」の 2 記事に続いて、clone_items() を扱ってきました。 search_exisiting_items パラメーターを利用すると既に存在するアイテムについて参照のみ変更しクローンをしないようにするか、アイテムの重複を許可し、クローンを作成するかを選択できます。 owner パラメーターを利用すると、ログインしている管理者自身でないユーザーに向けてクローンを送ることができます。
関連リンク
アイテムのクローン
Python を使って他のArcGIS アカウントにアイテムを複製してみよう!
Cloning Content