DOC
|
1. はじめに 以前、GeoNet で紹介した「はじめてのWeb マッピングアプリケーション開発のシリーズ記事」では、はじめて地図アプリの開発を行う方に向けて、ArcGIS API for JavaScript を使用した Web アプリ開発の流れを 7回に渡って紹介してきました。 その続編としてウィジェットを使ったアプリ開発についてシリーズで紹介していきます。 続編 はじめてのWeb マッピングアプリケーション開発:ウィジェット編 続編 はじめての Web マッピングアプリケーション開発:印刷ウィジェット編 続編 はじめての Web マッピングアプリケーション開発:編集ウィジェット編 続編 はじめての Web マッピングアプリケーション開発:ナビゲーション ウィジェット編 続編 はじめてのWeb マッピングアプリケーション開発:OAuth 2.0編 番外編 はじめてのWeb マッピングアプリケーション開発:多言語のべースマップ活用編 続編の第1回目では、ArcGIS API for JavaScript を利用した Web アプリの開発を効率化する上で大事な要素となるウィジェットの概要や実装の流れについて紹介します。 これまでの記事と同様に、ソースコードは ESRIジャパンの GitHub で公開していますので、ぜひご覧ください。Web アプリ開発の実行環境をお持ちでない方は、JSBin を使用して、Web ブラウザー上でコードの入力・編集、アプリの実行を試すこともできます。 2. ウィジェット とは ウィジェットとは、ArcGIS API for JavaScript が提供している GIS 機能を兼ね備えた UI コンポーネントです。 通常、Web マッピングアプリケーション開発においては、GIS の機能はもちろんですが、いかに見やすく、使いやすいなど、ユーザビリティを考慮した開発が必要になってきます。そのためには、UI(ユーザーインターフェース)の開発が重要です。しかし、UI の開発には操作性やデザインなど考えることが多岐に渡るため、多くの開発者が悩むところだと思います。 ArcGIS API for JavaScript では、GIS でよく使用するウィジェットを標準で幾つか提供しているので、ウィジェットを活用することで GIS の機能と同時にリッチな UI を Web マッピングアプリケーションに簡単に組み込むことができます。 以下では、よく使用される便利なウィジェットの例として、Search ウィジェットと BasemapGallery ウィジェットについて紹介しています。 Search ウィジェット はマップ内の目標物や場所を検索するためのウィジェットです。 このウィジェットは Esri が提供している ArcGIS World Geocoding Service を参照しており、住所や場所、建物名などを検索する機能を備えています。さらに、検索キーワードなどを入力すると、候補を自動的に表示して、最適なものを選択するオプションなども提供しています。 また、ArcGIS World Geocoding Service は、リクエスト結果を保存しなければ 100 万リクエストまでは、無償で使用できます。 BasemapGallery ウィジェットは背景地図の切り替えを行うためのウィジェットです。 このウィジェットは、ArcGIS Online や ArcGIS Enterprise にホストされている背景地図にアクセスして表示します。背景地図の一覧を表示し、ウィジェット内に表示されている地図をクリックすると背景地図が切り替わります。 また、背景地図へのリクエストは、1ヶ月100万トランザクションまでは、無償で使用できます。トランザクションの考え方について、トランザクションの定義をご参照ください。 2-1. ウィジェットの実装 次に ウィジェットの実装を行う流れを先ほどご紹介した Search ウィジェットと BasemapGallery ウィジェットを例に紹介します。 ① Search モジュールと BasemapGallery モジュールの追加 require ステートメントで Search モジュールと BasemapGallery を追加します。 require([
"esri/Map",
"esri/views/MapView",
"esri/widgets/Search",
"esri/widgets/BasemapGallery"
], function(Map, MapView, Search, BasemapGallery) {
② Map と View の作成 Map と View の作成については、「はじめての-web-マッピングアプリケーション開発-地図表示編」のステップ3、4をご参照ください。 記事ではなくコードを参照したい方は、ESRI ジャパンの GitHub の前回の記事のコード をご参照ください。 ③ Search ウィジェットの作成 require で 追加した Search モジュールを使用して、クラスから Search オブジェクトを作成します。 Search オブジェクト の view プロパティに View を設定します。 地図上に Search ウィジェットを組み込むために、View に追加します。ここでは、View の右上隅にウィジェットを追加しました。 /************************************************************
* 省略 Map と View の作成
************************************************************/
// Search ウィジェット
var search = new Search({
view: view
});
view.ui.add(search, "top-right");
④ BasemapGallery ウィジェットの作成 require で 追加した BasemapGallery モジュールを使用して、BasemapGallery クラスから basemapGallery オブジェクトを作成します。 basemapGallery オブジェクト の view プロパティに View を設定します。 source の portal プロパティでは、url には、「https://www.arcgis.com」にしていますが、目的の組織サイトを参照することもできます。useVectorBasemaps を true にすることで、背景地図にはベクタータイル ベースマップが使用されます。また、false にした場合は、ラスタータイル ベースマップが使用されます。 地図上に BasemapGallery ウィジェットを組み込むために、View に追加します。ここでは、View の右上隅にウィジェットを追加しました。 // BasemapGallery ウィジェット
var basemapGallery = new BasemapGallery({
view: view,
source: {
portal: {
url: " https://www.arcgis.com",
useVectorBasemaps: true // ベクタータイル ベースマップを使用
}
}
});
view.ui.add(basemapGallery, "top-right"); // Add to the map
地図上の右上に Search ウィジェットと BasemapGallery ウィジェットが追加されているのが分かるかと思います。ウィジェットを活用することで、少ないコード量で UI 含めて GIS の機能を実装することが可能となります。 2-2. View UI ArcGIS API for JavaScript は、シンプルな UI レイアウトを設定するためのインターフェースを提供しています。Search ウィジェットや BasemapGallery ウィジェットを右上に配置したように View は、ウィジェット または DOM 要素を隅に配置できる UI API を提供しています。 次のアプリケーションを例として取り上げます。 .search,
.logo {
position: absolute;
right: 15px;
}
.search {
top: 15px;
}
.logo {
bottom: 30px;
} 上記の例のようにウィジェットを目的の位置に配置するには、CSS ファイルを設定することで可能となりますが、ウィジェットの数が多い場合やウィジェットの位置を変更する場合は、CSS ファイルを更新する必要があります。 しかし、次の例のように View の UI API を使用することで、CSS ファイルは不要となり、目的の位置にウィジェットを配置することが可能となります。先ほどの例では、右上隅に配置しましたが、以下のように左上隅に配置することもできます。 view.ui.add(search, "top-left");
view.ui.add(basemapGallery, "top-left"); 詳細は、View が提供している UI API の add () メソッドをご参照ください。 また、デフォルトでは、MapView または SceneView のウィジェット コンポーネントが使用できます。デフォルトのウィジェットは、文字列の配列として扱うことができます。詳細は、DefaultUI クラスのコンポーネントをご参照ください。 例えば、以下のように、「"compass"」、「"zoom"」 を非表示にすることもできます。 ※ 変更前 // 変更前
view.ui.components = (["attribution", "compass", "zoom"]);
※ 変更後 // 変更後
view.ui.components = (["attribution"]);
さらにアプリケーション内で、ウィジェットの位置を動的に変更する必要がある場合は、UI API を使用してウィジェットの位置を移動、及び削除することもできます。 view.ui.move(logo, "bottom-left");
view.ui.remove(search);
view.ui.remove([compass, "zoom"]); 3. ArcGIS API for JavaScript で提供しているウィジェットの例 ArcGIS API for JavaScript では、標準で多くのウィジェットを提供しています。 例えば、地図機能としてよく使用されるケースとして以下の便利なウィジェットを提供しています。 地図上で現在位置を特定するための Locate ウィジェット 地図上に凡例を表示するための Legend ウィジェット 目的の場所をブックマークとして追加し、ブックマークを選択してその場所へ移動することができる Bookmarks ウィジェット ウィジェットの組み合わせの例として、GeoNetブログのレイヤーを拡張して「Tile Map Service」のサービスを表示の記事において、LayerList、Expand、 Swipe のウィジェットを使用しています。記事では、「ポイント3:ウィジェットを活用」で触れています。 ここではすべては紹介できませんが、他のウィジェットについては、APIリファレンス内の Widget の Subclasses を参照することで確認できます。また、サンプルコードとしても提供していますので、ご参照ください。 4. ウィジェットの拡張 標準で提供しているウィジェットではなく、ユーザーのニーズに応じてカスタマイズが必要になってくるケースもあるかと思います。その場合も対応が可能で、ArcGIS API for JavaScript が標準で提供しているウィジェットを拡張することで実現できます。 ウィジェットの拡張については、ArcGIS for Developers 開発リソース集のウィジェット開発をご参照ください。 5. まとめ ArcGIS API for JavaScript が提供しているウィジェットを使用することで、機能を実装する工数を削減できたり、Web マッピングアプリケーションにも簡単に組み込むことができるため、開発全体の工数削減にも繋がります。また、既存ウィジェットを使用することで、他の機能実装に集中できるようになります。 さらに標準で提供しているウィジェットではなく、業務に特化したウィジェットを提供したい場合には、ウィジェットを拡張することで実現できます。 今回作成したサンプルは以下で動作を確認することも可能です。 Search ウィジェット、BasemapGallery ウィジェット:https://esrijapan.github.io/arcgis-samples-4.0-js/samples/startup_api/widget/widget.html 今回は標準的なウィジェットを紹介しましたが、次回以降は、汎用的なウィジェットを幾つか紹介していきたいと思います。そのひとつとして印刷ウィジェットについて紹介します。 6. 関連リンク はじめてのWebマッピングアプリケーション開発 1. はじめての Web マッピングアプリケーション開発:地図表示編 2. はじめてのWeb マッピングアプリケーション開発:レイヤー表示編 3. はじめての Web マッピングアプリケーション開発:レイヤーの可視化編 4. はじめての Web マッピングアプリケーション開発:ポップアップの設定編 5. はじめての Web マッピングアプリケーション開発:Web マップの作成・表示編 6. はじめてのWeb マッピングアプリケーション開発:グラフィック編 7. はじめてのWeb マッピングアプリケーション開発:クエリ編 ArcGIS API for JavaScript ArcGIS for Developer 開発リソース集
... View more
03-11-2020
07:34 PM
|
0
|
0
|
3077
|
POST
|
Is there any difference in the rendering of the map when using mmpk file in 100.2 and 100.6? Is the following perception wrong? 100.2 displays map data in a range not displayed on the terminal screen (it develops the data on the memory). On the other hand, in 100.6, the range that is not displayed on the terminal screen is not it develops the data on the memory, so if you move the map, the map will be redrawn frequently, so it may be a jerky movement.
... View more
02-18-2020
02:13 AM
|
0
|
0
|
468
|
DOC
|
はじめに 前回の記事では、IoT プラットフォームである SORACOM と ArcGIS Online を連携させる方法についてご紹介しました。具体的には、GPS トラッカーから 3G 通信で SORACOM までデータを送信し、データ転送サービス 「SORACOM Beam」 から Amazon Web Service (AWS) にデータを転送後、さらに AWS Lambda で ArcGIS Online の REST API を叩いてデータを登録する、という流れです。 上記方式の場合、データ連携が自動化され、リアルタイムにデータが追加されていく点で優れていますが、AWS の設定やコーディングが必要なため、実装のハードルが高いかもしれません。 そこで今回は、データ連携の自動化までは出来ませんが、ArcGIS と SORACOM を活用して、ノンコーディングで簡単に IoT データを地図上で可視化する方法をご紹介します。IoT と位置情報の活用を検討されている企画担当者の方や営業担当者の方でも、まずは手軽に試してみることが可能です。 全体の概要 今回は LPWA (消費電力を抑えた遠距離通信技術)の一つである Sigfox を利用して、デバイスで検知した温度のデータを送信し、データをダウンロードしてから地図上での可視化を試します。 まずは、SORACOM が提供する Sigfox を利用した通信サービス、「SORACOM Air for Sigfox」 を利用し、デバイスで取得したデータを SORACOM プラットフォームまで送信します。次に、送信されたデータの簡易な可視化・蓄積・ダウンロード等が可能なサービス、「SORACOM Harvest」 を活用し、CSV 形式でデータをダウンロードします。最後に、Excel でデータを加工し、Excel のアドイン製品である ArcGIS Maps for Office を活用して Excel 上でそのまま地図上に可視化します。 事前準備 今回紹介する方法では、以下の準備が必要です。 SORACOM のアカウント Sens’it (温度検知のためのデバイス) ArcGIS Online の組織サイト(または Portal for ArcGIS) のレベル 2 指定ユーザー アカウント ArcGIS Maps for Office (地図上で可視化するための Excel のアドインソフト。弊社サポートサイトからダウンロードしてインストール) Microsoft Excel (ArcGIS Maps for Office の動作環境に合うもの) SORACOM の提供する Sigfox を利用する通信サービスや、Sens’it の設定の詳細については、それぞれソラコム社の該当ウェブページやデバイスのセットアップページに詳しく説明されているのでご参照ください。 デバイスのセットアップが完了し、SORACOM までデータが送信されたことが確認できたら、次は SORACOM Harvest からデータをダウンロードします。 SORACOM Harvest からデータをダウンロード SORACOM Harvest を利用することで、センサーで取得したデータを収集・蓄積し、簡易な可視化や、データのダウンロード等ができます。 SORACOM のコンソールにログイン後、左上の 「Menu」 アイコンをクリックし、「Sigfox デバイス管理」 を選択します。 データを可視化したいデバイスの ID にチェックを入れ、「操作」 から 「データを確認」 を選択します。 グラフが表示されるので、その下の 「データ」 タブから 「ダウンロード」 を選択し、CSV 形式で任意のディレクトリにダウンロードします。 データに緯度・経度を付与する Sens’it では位置情報は取得できない(※)ため、事前にセンサーを設置した場所の緯度経度を定義しておき、センサーの ID と紐づけて付与します。 まずはダウンロードした CSV ファイルを Excel で開きましょう。次に、新しいシートを開き、シート名を 「DeviceLocation」 と名付けます。名前をつけたら、デバイス ID とそのデバイスに紐づく緯度経度の表を作成します。 ※ Sigfox Geolocation オプションサービスを利用するとデバイスの位置情報が数 km 程度の精度で取得できるようですが、SORACOM Air for Sigfox は Geolocation オプションには対応していないようです。 デバイス ID は SORACOM のコンソールからコピペしましょう。緯度経度は ArcGIS Online の Web マップを開き、計測ツールから「位置」を選択した後、任意の場所をクリックすると緯度経度を調べることができます。今回は ESRIジャパンの東京以外のオフィスに Sens’it を設置したことにしました(※)。 ※ Sigfox 通信のカバレッジは Sigfox の Web サイトで確認してください。 表を作成したら元のシートに戻り、「lat」 列、「lng」 列に以下の関数を入力し、一番下までコピーします。既に入っている値は無視して構いません。 lat = VLOOKUP (B2, DeviceLocation!$A$2:$C$501, 2, FALSE) lng = VLOOKUP (B2, DeviceLocation!$A$2:$C$501, 3, FALSE) 処理の内容としては、vlookup 関数で「__resourceId」 (デバイス ID) 列の値を参照し、事前に作成した表のデバイス ID 列を検索して、紐付いている緯度、経度の値を返しています。緯度・経度がきちんと入力されたら Excel ファイルとして保存しておきましょう。 以上でデータの準備が終わりました。次は ArcGIS Maps for Office でデータを地図上に可視化します。 ArcGIS Maps for Office ArcGIS Maps for Office をインストールすると Excel に ArcGIS Maps というタブが作成され、ArcGIS へサインインできるようになります。 サインインしたら「マップの追加」をクリックし、位置情報から「座標」を選択後、経度と緯度の入力されている列を指定します。 その後、可視化したいデータの列を選択し、続いてどのような表現で可視化するかを選択します。今回は温度の格納されている TempC 列を選択し、シンボルのサイズで温度の高低を表現することにしました。 これだけで、簡単に IoT データを地図上で可視化できてしまいます。さらに各地点のデータ数の密度をヒートマップで表現したり、クラスタリングでまとめたりすることも可能です。 ArcGIS では豊富な背景地図も用意しています。例えばデザイン性を重視した地図を作成するのであれば、ダークグレイの背景地図を選択することも可能です。 Web上に共有してWebアプリを作成 今回は詳細について触れませんが、基本的な地図のデザイン等が決まったら、作成した地図を ArcGIS プラットフォーム Web 上で共有することも可能です。ArcGIS では Web アプリ作成用のテンプレートも豊富に用意しているので、共有されたデータや地図を使って Web アプリもノンコーディングで作れます。下記の Web アプリではデバイスで取得された温度と湿度の平均値をグラフで可視化するウィジェットと、最大値・最低値などをサマリーとして表示するウィジェットを配置しました。 まとめ 本格的な IoT システムの構築は簡単にはできませんが、ArcGIS と SORACOM を組み合わせることで、ノンコーディングで IoT データを地図上で可視化することができました。豊富なAPI や SDK で自由にカスタマイズできるところも ArcGIS の魅力ですが、こうして簡単に IoT データの可視化や分析ができる強みも持っています。コーディングが苦手な方はもちろん、開発者の方にも、いきなりシステムを組み上げるのではなく、まずはスモールスタートで試してみたい場合におすすめです。 IoT のデータを地図上で表示・分析したいといったニーズは、非常に増えてきており、ArcGIS と IoT を用いたビジネスの事例や活用例を、弊社 Web サイトに掲載しています。また、SORACOM と ArcGIS の連携については、7月12日に開催されるセミナー 「ここまでできる!ArcGIS で実現する IoT×GIS システム連携」 でも詳しくご紹介する予定です。興味のある方は是非ご参加ください。 ■関連リンク ArcGIS ArcGIS Maps for Office SORACOM SORACOM Air for Sigfox SORACOM Harvest
... View more
07-04-2018
06:21 PM
|
1
|
0
|
2375
|
DOC
|
はじめに 各種のセンサー機器から取得したデータをリアルタイムに地図に表示したい、また、ダッシュボードなどで加工された様々なセンサーデータをグラフィカルに表示したいといったニーズが、ここ数年の「IoT(モノのインターネット)」の流行りと共に爆発的に増えていることと思います。 このようなデータは、弊社製品の ArcGIS プラットフォームを活用することで簡単に Web 上で可視化することができます。 そこで今回は、GPSトラッカーという、GPS と 3G 通信を使用して位置情報をトラッキングする端末を使用して、トラッキング情報を ArcGIS Online のダッシュボードを利用して可視化しました。 ※ ArcGIS Online は、マップを作成、利用、管理するポータル環境を提供するクラウド GIS です。 ArcGIS Online に構築したダッシュボード(GPS トラッカー軌跡の解析) ArcGIS Online 上で作成したダッシュボードは、「GIS コミュニティフォーラム 2018 TR313J ダッシュボード (GPS トラッカー奇跡の解析)」から実際に操作することができます。 トラッキング情報のデータのやり取りは、IoT プラットフォームの SORACOM を使用しています。その SORACOM プラットフォームに送信したトラッキングデータを地図に可視化するため、ArcGIS と連携する仕組みを構築してみました。 本記事では、その仕組みの具体的な中身を紹介します。 SORACOM を採用した理由 IoT をはじめるにあたり、よくある課題として、デバイスとの通信を行うための通信インフラやセキュリティ、通信サービスの費用といったことがあると思います。その解決策として、特に SORACOM では、通信のセキュリティが強固で、かつ通信費用が安いというのが魅力的でした。また、多くの便利な関連サービスが用意されており、ArcGIS プラットフォームとの連携を比較的簡単に行うことができました。そういったところが、IoT の通信プラットフォームとして SORACOM が多くの顧客を獲得している理由でしょう。 連携の仕組み ArcGIS との連携では、SORACOM Beam というサービスを使用しています。SORACOM Beam からのデータを直接 AWS 上のサービスを利用して処理し、処理したデータを ArcGIS に登録しています。 ※ SORACOM Beam は SORACOM Air の SIM を使用したデバイスからのデータ・アップロード時にクラウド側でデータ処理を行うためのプロキシーサービスです。 SORACOM Beam から AWS との接続は、「SORACOM Beam を使用して AWS と接続する」を参考にしました。 具体的なデータの流れ GPS トラッカーから TCP で送信されたデータは、SORACOM Beam により 受信され、デバイスに固有のデータを付与した上で、Amazon API Gateway に TLS 暗号化されたセキュアな状態で送信されます。 次に Amazon API Gateway は受け取ったデータを加工し、デバイス固有の情報をデータに含めた上で、AWS Lambda の Python コードを実行します。 AWS Lambda で実行されたコードは、受け取ったデータを ArcGIS Online に登録します。 AWS Lambda で実行する Python コードでは、ArcGIS の REST API のフィーチャ サービスを使用してデータを登録しています。ArcGIS では REST API の仕様が公開されており、それを使用することで、他のプラットフォームとの連携をシームレスに行うことができます。REST API 以外にも ArcGIS API for JavaScript や ArcGIS API for Python などの API を使用するという選択肢もありましたが、外部の API を使用するには、ZIP 化してアップロードするなどの手続きが必要となるため、今回は、データ登録だけでしたので、REST API を直打ちにしました。 今後、空間検索などのより複雑な処理を実行する場合は、ArcGIS API for Python などの使用を検討していきたいと思います。 あらかじめ ArcGIS Online で使用する GPS トラッカー用のフィーチャ サービスを作成し、フィーチャ サービスの REST エンドポイントを使用してデータ登録を行っています。 次のコードは GPS トラッカーからのデータ(位置情報・属性情報)をフィーチャ サービスの REST エンドポイントに登録している部分です。 // GPS トラッカー用のフィーチャ サービスのエンドポイント
AGOL_applyEdits = r"https://utility.arcgis.com/usrsvcs/servers/46a76439b3a64b119bf85cdc8cc5ac51/rest/services/GCF2018_ArcGISxSORACOM/FeatureServer/0/applyEdits"
:
:
#>> 送信処理 #############################
def sendData(geometry_dic, attributes_dic):
# 測地系設定:固定 (WGS 1984 で設定)
spatialReference_dic = {}
spatialReference_dic["latestWkid"] = 4326
spatialReference_dic["wkid"] = 4326
geometry_dic["spatialReference"] = spatialReference_dic
# パラメータ作成
devData_dic = {}
devData_dic["geometry"]=geometry_dic
devData_dic["attributes"]=attributes_dic
# Featureに追加する
return AddFeature(devData_dic)
def AddFeature(devData_dic):
# 属性データの辞書を JSON に変換
json_str = json.dumps(devData_dic)
# 属性 JSON を URL エンコード
import urllib.parse
json_q = urllib.parse.quote(json_str)
# 送信パラメータを構築
sendData = "adds=" + json_q + "&f=pjson"
# 送信 (POST)
headers = {"Content-Type" : "application/x-www-form-urlencoded", "referer" : referer}
req = urllib.request.Request(AGOL_applyEdits, headers=headers, data=sendData.encode('utf-8'))
with urllib.request.urlopen(req) as response:
response_body = response.read().decode("utf-8")
json_dict = json.loads(response_body)
return json_dict データの登録には、フィーチャ サービスの Apply Edits (Feature Service/Layer) を使用して、POST でリクエストしています。パラメータとしては、adds と f を使用しています。adds はデータの追加用のパラメータで、「geometry」 と 「attributes」 の配列を JSON 化したものを設定しています。f は応答形式で pjson (Pretty JSON) と設定しています。 まとめ SORACOM を利用することで、GPS トラッカーからデータを受け取る部分は簡単に構築することができました。なお、SORACOM にはこれ以外にも多くの連携用の機能やサービスがあります。 本記事で紹介した内容や他の連携パターンを踏まえて、7 月 12 日に開催のセミナー「ここまでできる!ArcGIS で実現する IoT×GIS システム連携」でもより詳細な情報をお伝えする予定です。是非お誘いあわせの上、奮ってご参加ください。 ■関連リンク ArcGIS ArcGIS Online ArcGIS REST API SORACOM SORACOM Beam
... View more
06-26-2018
06:14 PM
|
1
|
0
|
7449
|
DOC
|
はじめに この記事は、「Pro SDK を使用した ArcGIS Pro の拡張」シリーズの第3弾です。 本シリーズでは、ArcGIS Pro SDK (以下、Pro SDK) を使用した ArcGIS Pro の拡張方法をご紹介しています。 前回の記事では、ArcGIS Pro の開発環境の構築方法についてご紹介しました。 今回は、Pro SDK のアドインプロジェクトの構成についてご紹介します 第 1 弾:ArcGIS Pro SDK とは? 第 2 弾:環境構築 第 3 弾:アドインプロジェクトの構成(本記事) 第 4 弾:アドインの開発 第 5 弾:管理構成画面のカスタマイズ Config.damlファイルとは? はじめに、アドインプロジェクトの構成を理解する上で重要な Config.daml ファイルについて説明します。 Visual Studio で ArcGIS Pro のアドインプロジェクトを作成すると、そのプロジェクトには「Config.daml」という名称のファイルが含まれています。 この Config.daml ファイルは ArcGIS Pro のカスタマイズにおいて不可欠なもので、XML 言語をベースとしており、daml という拡張子名は【Desktop Application Markup Language】の頭文字から取られています。 ArcGIS Pro の変更、拡張はすべてこのファイルに宣言する必要があります。宣言することによって既存の ArcGIS Pro のコントロールに対しての追加、編集、削除を行うこともできます。 アドインプロジェクトの構成について それではここから、開発を行う際の基本的な構成について説明します。 第1弾のブログでも少し触れましたが、Pro SDK は MVVM モデルを考慮した設計になっています。 基本的な構成は以下のような図になります。 上記の図では、Config.daml ファイルに Pro UI の要素を定義して、定義した要素を .NET クラスで作成しています。 それぞれのファイルについて次のことを主に定義します。 Config.daml:ArcGIS Pro をカスタマイズする UI の要素を定義します(タブ・グループ・ボタンなど)。 MyViewModels.cs:View とのデータの受け渡しやボタンなどを押下したときの処理を実装します。 MyView.xaml:ドックパネルやポップアップなどの UI を実装します。 ※上記で定義した以外でも .NET の基本設計・挙動に従って開発することが可能です。 基本的にはこのような構成でアドインプログラムを実装していきます。 また、.NET クラスで作成する Pro UI の要素については多くのテンプレートが提供されています。 図4:Pro SDK で提供されているアドインモジュールのテンプレート群 実際に Visual Studio でアドインプロジェクトを作成し、デバッグすると ArcGIS Pro では次のように表示されます。 上記の画像は一例ですが、リボン上にアドインのタブが追加され、ドックパネルを呼び出すボタンが定義されており、ボタンを押下することでドックパネルを画面に表示します。 非同期処理 最後に、ArcGIS Pro のアドインアプリケーションを作成する際の注意点についてご説明します。 ArcGIS Pro はマルチスレッド 64 ビットアプリケーションで様々な処理を同時実行します。 コンフリクトを避けるため、Pro SDK を使用した処理は QueuedTask.Run() メソッドでキューに登録する必要があります。 登録した処理は ArcGIS Pro のプロセスが適切なタイミングで実行します。 また、意識的に Async / Await を使用して非同期実行することもできます。 QueuedTask.Run() の呼び出し例 Task t = QueuedTask.Run(() =>
{
// 呼び出す SDK のメソッド
} Async / Await の実行例 private async Task<IGPResut> ExecuteGP(string tool, IReadOnlyList<string> parameters)
{
IGPResult result = await Geoprocessing.ExecuteToolAsync(tool, parameters, flags: GPExcuteToolFlags.None);
return result;
} これでアドインプロジェクトの構成の説明は終わりです。次回は、この構成を踏まえた上で Pro SDK での簡単なアドイン開発についてご紹介します。 関連リンク ArcGIS Pro SDK ArcGIS Developers 開発リソース集 ArcGIS Pro SDK サンプル集(GitHub) API リファレンス チュートリアル
... View more
06-21-2018
08:16 PM
|
0
|
0
|
4252
|
POST
|
Thanks Uma, I will check about operation. Regards, Takahiro Kamiya
... View more
06-11-2018
04:13 AM
|
0
|
0
|
798
|
DOC
|
はじめに この記事は、「Pro SDK を使用した ArcGIS Pro の拡張」シリーズの第 2 弾です。 本シリーズでは、ArcGIS Pro SDK (以下、Pro SDK) を使用した ArcGIS Pro の拡張方法をご紹介しています。前回の記事では、Pro SDK とはどういった開発製品かということと、ArcGIS Pro でどのようなカスタマイズが可能なのかをご紹介しました。 今回は、開発環境の構築方法についてご紹介します。 第 1 弾: ArcGIS Pro SDK とは? 第 2 弾:環境構築(本記事) 第 3 弾:アドインプロジェクトの構成 第 4 弾:アドインの開発 第 5 弾:管理構成画面のカスタマイズ 開発環境の準備 Pro SDK を用いて ArcGIS Pro の拡張アドインを開発するには、一般的に統合開発環境として Microsoft Visual Studio (以下、Visual Studio) を使用します。そのため、Pro SDK がサポートするバージョンの Windows OS と Microsoft Visual Studio が適切にセットアップされている必要があります。 Pro SDK がサポートする最新の動作環境につきましては下記をご参照ください。 ArcGIS Pro SDK for .NET 動作環境 Pro SDK のインストール方法 Pro SDK のインストールには、次の2つの方法があります。 最新バージョンのインストール:Visual Studio の [拡張機能] からインストールする方法 旧バージョンのインストール:GitHub からインストーラーをダウンロードしてインストールする方法 ※ Visual Studio では、インストールできるバージョンは最新のバージョンのみですので、旧バージョンのインストールを行う場合は、GitHub からインストーラーをダウンロードします。 最新バージョンのインストール Visual Studio の [拡張機能] を使用した最新バージョンのインストール方法をご紹介します。 1.Visual Studio を起動します。 2.Visual Studio の [拡張機能] メニューの [拡張機能の管理] を選択します。 3.[オンライン] 項目の [Visual Studio Marketplace] を選択します 4.右上の検索ボックスに 「ArcGIS Pro SDK」と入力します。検索結果として「ArcGIS Pro SDK for .NET」と「ArcGIS Pro SDK for .NET(Utilities)」、「ArcGIS Pro SDK for .NET(Migration)」が表示されます。 5.「ArcGIS Pro SDK for .NET」 と 「ArcGIS Pro SDK for .NET (Utilities) 」 をそれぞれ選択し、[ダウンロード] をクリックします。 ※ Pro SDK 2.x から 3.x への移行が必要な場合は「ArcGIS Pro SDK for .NET(Migration)」もダウンロードします。詳細は Pro 3.x への移行をご参照ください。 6.インストール内容を Visual Studio に反映させるため、ダイアログの下部に表示されている [閉じる] をクリックして、一度 Visual Studio を終了します。 7.[VSIX Installer] ダイアログが表示されます。[Modify] をクリックして、ArcGIS Pro SDK for .NET をインストールします。 8.Visual Studio に ArcGIS Pro SDK for .NET のテンプレートとユーティリティがインストールされていることを確認します。 再度、Visual Studio を起動して [新しいプロジェクトの作成] メニューの [すべてのプロジェクトの種類] で [ArcGIS Pro SDK] を選択します。C#および Visual Basic 用の新しいプロジェクトテンプレートのリストに「ArcGIS Pro モジュール アドイン」、「ArcGIS Pro 構成管理」など、Pro SDK のテンプレートが表示されていれば、インストールは完了しています。 旧バージョンのインストール 旧バージョンの SDK をインストールするには、GitHub からインストーラーファイルをダウンロードする必要があります。 1.下記の URL から GitHub のサイトにアクセスし Pro SDK の任意のバージョンのを選択します。 https://github.com/Esri/arcgis-pro-sdk/releases 2.[Assets] 内にある「proapp-sdk-templates.vsix」と「proapp-sdk-utilities.visx」をダウンロードします。 3.ダウンロードした「proapp-sdk-templates.vsix」と「proapp-sdk-utilities.visx」のファイルをダブルクリックすると VSIX インストーラーが起動しますので、[Install] をクリックしてインストールを行います。 確認は、「最新バージョンのインストール手順の 8 」と同じ方法で確認します。 Visual Studio の設定 Visual Studio では、Pro SDK の自動更新がデフォルトでオンとなっています。 ArcGIS Pro と ArcGIS Pro SDK のバージョンが異なると、アドインの使用時などにエラーが発生してしまいます。そのため、自動更新をオフにすることを推奨しています。 Visual Studio で、[ツール] メニュー → [オプション] → [環境] → [拡張機能] から[拡張機能を自動的に更新する] のチェックを外し、[OK] をクリックすることで、自動更新をオフに設定することが可能です。 これで開発環境の構築は完了です。 次回は、Pro SDK で実装するための基本構成などについてご紹介していきます。 関連リンク ArcGIS Pro SDK ArcGIS Developers 開発リソース集 ArcGIS Pro SDK サンプル集(GitHub) API リファレンス チュートリアル
... View more
04-27-2018
12:55 AM
|
0
|
0
|
2618
|
POST
|
After checking with 100.2.1, TextSymbol could not be displayed, but do you know something? Surface placement—ArcGIS Runtime SDK for .NET Samples | ArcGIS for Developers arcgis-runtime-samples-dotnet/SurfacePlacements.xaml.cs at master · Esri/arcgis-runtime-samples-dotnet · GitHub
... View more
04-25-2018
05:08 AM
|
0
|
0
|
504
|
POST
|
Is there an example of sample code and usage in Pro SDK? Is it possible to change the renderer using Arcade? Examples of this profile in context https://developers.arcgis.com/arcade/guide/profiles/
... View more
04-03-2018
11:48 PM
|
0
|
2
|
1040
|
POST
|
Hi Uma, Is it OK to digitally sign using C:\Program Files\ArcGIS\Pro\bin\ArcGISSignAddIn.exe?
... View more
04-01-2018
09:07 PM
|
0
|
1
|
2346
|
POST
|
Sorry, the question is ambiguous and I am sorry. Are there restrictions on licensing in virtualized environments? For example, licenses can not be used to develop Internet-based or server-based value-added applications. It is NG or the like that acts like a server.
... View more
03-27-2018
02:20 AM
|
0
|
0
|
1206
|
DOC
|
はじめに この記事は、「ArcGIS API for Python を使ってみよう」シリーズその④です。 当シリーズでは、ArcGIS API for Python(以下、Python API)の使い方などをご紹介しています。 前回の記事では、ArcGIS Online 上のアイテムの検索方法をご紹介しました。 今回は、ArcGIS Online 上のアイテムを削除する方法をご紹介します。 ArcGIS Online 上のアイテム削除 検索と同様に、 Python API を使用することで ArcGIS Online 上のアイテムを操作することができます。 今回は例としてアイテムの削除を行ってみましょう。 今回は次の 3 種類のの要素で ArcGIS Online 上のアイテムを指定します。 アイテムのタイトル名 タグ フォルダー アイテムの削除は、ContentManeger クラスの delete() メソッドを使用します。 実行コードと解説 実際に実行するコードを記述して解説します。 シリーズ③でご紹介した方法で検索した各アイテムに対して削除を行います。それでは順番に見ていきましょう。 タイトルで検索したアイテムの削除 アイテム タイトル(kanazawaParking)で検索した「kanazawaParking.csv」ファイルを削除します。 タイトルを指定して検索した結果をアイテムオブジェクトとして取得できますので、Contents Manager クラスの delete() メソッドを使用して削除します。 # アイテム タイトル (kanazawaParking.csv) で検索
search_title_result = gis.content.search(query="title:kanazawaParking type:CSV")
# アイテム タイトル (kanazawaParking.csv) で検索したデータの削除
search_title_result[0].delete() タグで検索したアイテムの削除 タグで検索した結果のアイテムを削除します。 検索結果が複数ある場合は配列で取得できるので、for 文を使って 1 つずつ削除します。 # タグで検索
search_tags_result = gis.content.search(query="tags:geodev_jp")
search_tags_result
# タグで検索したデータを削除
for tag_result in search_tags_result:
tag_result.delete() フォルダーを削除 アイテム単位だけでなく、フォルダーも削除することができます。 ユーザーが所有しているフォルダーを検索して、フォルダーごとアイテムを削除したい時などに便利です。 ここでは、geodev_201803/15 というフォルダーを削除します。 フォルダーの削除は content オブジェクトの delete_folder () メソッドを使用します。 # 指定したフォルダーを削除
gis.content.delete_folder("geodev_201803/15") ※ フォルダーを削除する場合は、フォルダー内に存在するアイテムも一緒に削除されます。 ここまで、3 回に分けて ArcGIS Online 上のアイテムの追加・検索・削除の方法をひととおり見てきましたが、いかがでしたか? Python API を使用することで、ArcGIS Online 上のアイテム管理の効率が上がり、皆さんの業務にも活かせるのではないでしょうか。 全体のコードは ESRIジャパン GitHub 上で公開しています。 ぜひ、みなさんもお試しください! 次回は、Web マップを作成する方法をご紹介します。 関連リンク集 ArcGIS 関連ページ ・ArcGIS API for Python(ESRIジャパン製品ページ) ・ArcGIS for Developers(ESRIジャパン製品ページ) ・ArcGIS Online(ESRIジャパン製品ページ) ・ArcGIS for Developers 開発リソース集 ・ESRIジャパン オープンデータポータル ・ArcGIS API for Python(米国Esri ページ(英語)) シリーズブログ 関連ページ ・ArcGIS API for Python を使ってみよう:できることや使いどころ ・ArcGIS API for Python を使ってみよう ①:Jupyter Notebook で使うための環境構築 ・ArcGIS API for Python を使ってみよう:ArcGIS Pro からの環境構築 (ArcGIS Pro 2.1) ・ArcGIS API for Python を使ってみよう ②:ローカル端末から ArcGIS Online へデータを作成してみよう ・ArcGIS API for Python を使ってみよう ③:ArcGIS Online のアイテムを検索してみよう ・ArcGIS API for Python を使ってみよう ④:ArcGIS Online 上のアイテムを削除してみよう ・ArcGIS API for Python を使ってみよう ⑤:Web マップを作成してみよう ・ArcGIS API for Python を使ってみよう ⑥:解析ツールを使ってみよう ArcGIS 開発リソース集 ・ArcGIS for API for Pythonのコンセプト ・インストールガイド ・ArcGIS for API for Pythonのための基礎環境:conda入門
... View more
03-26-2018
06:33 PM
|
1
|
0
|
2324
|
POST
|
System requirements for 100.2.1—ArcGIS Runtime SDK for .NET (WPF) | ArcGIS for Developers Connect the application of ArcGIS Runtime with VDI (part called virtual) and use it. ※ 1. It is not a support environment but there is no problem as a license ・ Total number of users connected and used: 500 ・ Number of simultaneous users of VDI connection: 100 ※ 2. In the case above, we consider it as 500 licenses, but are there any problems?
... View more
03-26-2018
07:12 AM
|
0
|
3
|
1306
|
DOC
|
はじめに 弊社では、東京公共交通オープンデータチャレンジのアプリケーション部門に応募しました(応募受付期間:2017年12月7日~2018年3月15日)。応募規定により審査終了まではアプリケーションを無償公開しているため、この機会に、第 1 回目は応募したアプリケーションの概要を紹介し、第 2 回ではアプリケーション開発で利用した技術にフォーカスして紹介していきます。 東京公共交通オープンデータチャレンジとは? 東京公共交通オープンデータチャレンジは、公共交通オープンデータ協議会が主催しています。このイベントは、本協議会に参画する交通事業者が、それぞれの保有するデータを一般の開発者に対して公開し、それらのデータを使ったアプリケーションやアイデアを募集するコンテストです。 コンテストでは、JR 東日本、東京メトロ、東京都交通局をはじめ、12 社の鉄道事業者、10 社のバス事業者、3 社の航空事業者からデータが公開されています。データとしては路線情報、時刻表情報などの静的データのほか、電車やバスのリアルタイムな位置情報や運行情報、航空機の発着情報などの動的データも公開されます。 応募したアプリケーションについて 応募した作品は、東京メトロ全路線における電車遅延状況がリアルタイムに一目で分かる Web アプリケーション「リアルタイム列車遅延マップ」です。 次の URL からリアルタイム列車遅延マップにアクセスすることができますので、ぜひご覧ください! なお、コンテストの結果発表・表彰式が 4 月下旬ですので、それに合わせて公開しています。 注)2018年5月15日でオープンデータチャレンジは終了しましたので、 本アプリの公開も終了いたしました。アクセスいただきましてありがとうございます。 1. アプリケーションのコンセプトと利用シーン 東京メトロ全路線の遅延情報を、直感的に手軽に見えるようにして、列車利用のタイミングを図れるようにしました。 それは例えば、企業で活用する場合ならば悪天候による帰宅や待機の指示を総務部門が出したり、社員自身が通勤のタイミングを検討する際に利用することを想定しています。 電車の遅延は様々な原因から起きるので、気象情報や Twitter の情報も表示することで、総合的な状況把握を可能にしました。 2. アプリケーションのシステム構成 地図情報を扱うための GIS (地理情報システム) サーバーを構築 GIS サーバー上で遅延情報をリアルタイムに配信する仕組みを構築 直感的に状況が分かるよう、駅や路線、遅延状況を地図上に可視化 利用者の UX を意識した UI 設計 3. アプリケーションの機能 ① 東京メトロの駅と路線を地図上に表示 ⇒ 全路線の遅延状況が一目でわかります。 ② 1分以上の電車の遅延情報を表示 ⇒ 遅延区間をクリックすることで何分遅延しているか分かります。 ③ Twitterからの遅延情報を表示 ⇒ 遅延情報を含むツイートを路線ごとに表示することにより、具体的な状況が把握できます。 ④ 現在から 1 時間後までの気象データを地図上に表示 ⇒ 気象情報により、今後の状況も予測可能です。 おわりに リアルタイム列車遅延マップは、一般に公開していますので、ぜひ皆さんも触ってみてください!また、触った感想などを Twitter や ブログなど、各ソーシャルメディアでも気軽に発信していただけると幸いです。 また、こういう機能があったら面白いなど、アプリに対してのアドバイスがあれば Twitter で #geodev_jp をつけてつぶやいていただくと、キャッチします! 次回は、リアルタイム列車遅延マップ開発に利用した技術内容を中心に紹介したいと思います。 関連リンク リアルタイム列車遅延マップ 東京公共交通オープンデータチャレンジ
... View more
03-22-2018
10:29 PM
|
0
|
0
|
3448
|
POST
|
Hello Uma, Thank you for the information. I will try it from Visual Studio. Regards, Takahiro Kamiya.
... View more
03-19-2018
08:53 PM
|
0
|
0
|
2346
|
Title | Kudos | Posted |
---|---|---|
1 | 06-26-2018 06:14 PM | |
1 | 07-04-2018 06:21 PM | |
1 | 03-26-2018 06:33 PM | |
1 | 12-18-2017 10:07 PM | |
1 | 10-31-2017 07:37 PM |
Online Status |
Offline
|
Date Last Visited |
2 weeks ago
|