GeoDev Meetup で ArcGIS Earth Automation API を使ってみる

 2017/8/30 (水)    

久しぶりに GeoDev Meetup に参加してきました。

2回目の参加となりますが、今回のもくもくタイムで「先日リリースされた ArcGIS Earth 1.6 の API を触ってみようと思います。」と自己紹介したので先日ブログで紹介した ArcGIS Earth 1.6 の API を触ってみます。

とはいったものの、1年以上 Visual Studio を触ってなくて1時間以内にまったく新規のアプリを作るのは難しいと思ったので、Esri のサンプルを触って動かしてみる、ということにしました。

やったこと:ヘルプの確認

まずはヘルプを読みながら API の操作方法を確認してみました。下記 URL を少し翻訳してみます。
http://doc.arcgis.com/en/arcgis-earth/automation-api/use-api.htm

Automation API の使用

管理者設定

OS 管理者権限で、ArcGIS Earth のインストール ディレクトリー(例:C:\Program Files\ArcGIS\Earth\bin\plugins)にある ArcGISEarth.WCFNamedPipeIPC.json ファイルを変更して AcGIS Earth Automation API の設定ができます。

ArcGISEarth.WCFNamedPipeIPC.json
{
 "autoStart": true
}

autoStart 関数は ArcGIS Earth 起動時に自動的に Automaiton API を有効にします。デフォルトでは false に設定されています。autoStart=true に設定すると、ArcGIS Earth 起動時にローカルホストで WCF サービスをホストできるようになります。[Settings] ダイアログの [Advanced] ペーンで、automaiton API が使用できるかどうかが確認できます。

ArcGIS Earth への接続

接続の有効化

ArcGIS Earth Automation API はマシン上のプロセス間通信(interprocess communication:IPC)に WCF 名前付きパイプ トランスポート(WCF named pipe transport)のメカニズムを実装しています。一度接続が確立すれば、クライアントアプリケーションは ArcGIS Earth と通信することができます。

Automaiton API を使用するには、要求を送信するための特定のエンドポイント アドレスが必要です。ArcGIS Earth Automation APIのエンドポイントアドレスは "net.tcp// localhost/arcgisearth" として定義されています。

アプリの接続を設定するには、次の手順を実行します。

~~以下の翻訳は今後のがんばり次第~~~

やったこと:サンプル プログラムを動かす

ヘルプからリンクされているサンプル プログラムは ArcGIS Online 上で公開されています。

  1. 事前に Visual Studio Community 2017 と ArcGIS Earth 1.6 をインストールしておきます。
  2. Automation API Usage Sample のサンプルをダウンロードして解凍します。
  3. EarthAPITestClient.sln ソリューションを開きます。
  4. EarthAPITestClient プロジェクトをビルドします。
  5. bin フォルダー内に EarthAPITestClient.exe がビルドされるので起動します。
  6. ArcGIS Earth を起動します。

    ArcGIS Earth 1.6 起動

     

  7. EarthAPITestClient で [ConnectEarth] ボタンを押します。ArcGIS Earth が起動していれば、[Success] が表示されます。

    EarthAPITestClient を起動

  8. [Get Camera] ボタンを押して、現在のカメラ情報を取得します。JSON 形式で情報が取得されます。

    GetCamera

     

  9. Visual Studio プロジェクト内にある sample.txt を開き、SetCamera の JSON 文字列をコピーし、Text info に貼り付け、[SetCamera] ボタンを押すと、指定したカメラ位置に地図が移動します。

    SetCamera

     

  10. sample.txt を参考に、[SetCamera] [FlyTo] [AddLayer] [ClearLayers] [GetSnapshot] を押してみてください。

ということで、1行もコードを書かずに終わるということにはなりましたが、久しぶりに Visual Stuido を起動してみて、もう少しがんばろうと。

GeoDev Meetup も無事終了で楽しめました!

Copyright© WINGFIELD since1981 , 2018 All Rights Reserved.