DOC
|
はじめに ArcGIS Enterprise はオンプレミス環境やクラウド環境、仮想環境で Web を介して GIS 機能を提供するサーバーソフトウェアで、組織内での地理空間情報の配信や、マップ・アプリケーションの作成、コンテンツの管理・共有機能を提供します。 本ブログでは、Web GIS の基盤となる ArcGIS Enterprise で公開できる主要な Web サービスの概要や主な機能に関してシリーズとして紹介していく予定です。 マップ サービス編 フィーチャ サービス編 ベクター タイル サービス編 シーン サービス編 第1回目となる今回は、マップ サービスについて紹介します。 マップ サービスとは? マップ サービスとは、その名の通りクライアントに地図(マップ)を配信する Web サービスです。サービスのデータソースとしては、シェープファイルやフィーチャクラス、ラスター データなど様々な形式に対応しており、マップ サービスは、ArcGIS Enterprise を構成するコンポーネントのうち、ArcGIS Server によって地図(マップ)の配信が行われます。 マップ サービスの種類 マップ サービスはダイナミック マップ サービスとキャッシュ マップ サービス(マップ キャッシュ)の2種類に大別されます。 ダイナミック マップ サービス クライアントからのリクエストに応じてサーバー側で地図画像を生成し、クライアントに地図画像を返します。レンダリングを変更した地図画像を返すことも可能です。 Web 上からの編集(図形編集/属性編集)には対応しておらず、参照専用となります。 第2回目で紹介するフィーチャ サービスとは異なり、クライアントからのリクエストに応じてサーバー側で地図画像を生成してクライアント側に返すため、複雑なジオメトリ(頂点数が非常に多いポリゴン)やレコード数が多いフィーチャクラスを取り扱う場合に適しています。 ArcGIS Enterprise の Portal for ArcGIS 上では以下の画像のように表示されます。ArcGIS Server インストール時にデフォルトで付属する「SampleWorldCities」サービスはダイナミック マップ サービスです。Web ブラウザの開発者ツールを利用することで、レスポンスとして地図画像が返されていることが確認できます。 ArcGIS API for JavaScript で参照する場合は、MapImageLayer クラス(JavaScript 4.x 系)や ArcGISDynamicMapServiceLayer クラス(JavaScript 3.x 系)を利用します。 キャッシュ マップ サービス(マップ キャッシュ) 縮尺毎に、タイル状に区切られたマップの画像を予めサーバー側で生成・保持しておくで、クライアントからの要求に対してすばやくレスポンスすることができるサービスです。 用途としては、背景地図やサービスのデータソースの更新頻度が低いデータの利用に適しています。データソースに変更があった際はタイル画像の再作成が必要になります。 タイル画像を作成する縮尺や範囲によって、大きなディスク容量やマシンリソースを消費するため、事前に小さな範囲でタイル画像を作成して、見栄えなどを確認することが推奨されています。 ArcGIS Enterprise の Portal for ArcGIS 上では以下の画像のように表示され、Web ブラウザの開発者ツールを利用することで、レスポンスとしてタイル状の地図画像が返されていることが確認できます。 ArcGIS API for JavaScript で参照する場合は、TileLayer クラス(JavaScript 4.x 系)や ArcGISTiledMapServiceLayer クラス(JavaScript 3.x 系)を利用します。 マップ サービスの主な機能 マップ サービスは、地図描画だけでなく検索や OGC の WMS や WCS などにも対応しています。ArcGIS REST Services Directory を利用される方は、イメージしやすいかもしれませんが、Identify(複数レイヤーに対しての個別属性表示) や Find(属性検索)、Query(個々のレイヤーに対する属性検索/空間検索)といったオペレーションを URL を介して実行することも可能です。Map Viewer でのサービス利用時やArcGIS Dashboards や ArcGIS Experience Builder などのアプリからは、機能に応じて内部的にこれらのオペレーションが実行されています。 まとめ ArcGIS Enterprise で公開できる主要な Web サービスに関するシリーズ記事の第一弾として、今回はマップ サービスの概要や機能について紹介しました。次回は、フィーチャ サービスについて紹介する予定です。 関連リンク ArcGIS Enterprise(ESRIジャパン 製品ページ) ArcGIS Enterprise(米国 Esri 製品ページ) マップ サービスとは(米国 Esri ヘルプページ) マップ キャッシュとは(米国 Esri ヘルプページ)
... View more
09-06-2022
09:46 PM
|
0
|
0
|
2763
|
DOC
|
はじめに 本記事は、米国 Esri 社のブログ記事「Add Experience Builder Custom Widgets In ArcGIS Enterprise」を翻訳したものに、一部加筆・変更したものです。 先日リリースされた ArcGIS Enterprise 11 以降のバージョンから ArcGIS Experience Builder (Developer Edition) を使用して作成したカスタム ウィジェットを ArcGIS Enterprise に追加して、組織内で利用できるようになりました。 ArcGIS Web AppBuilder (Developer Edition) のカスタム ウィジェットを ArcGIS Enterprise で利用する場合も、基本的には同様の手順になるため、経験のある方には馴染みやすいかもしれません。 今回は、「表示レイヤーの切り替えウィジェット (ArcGIS Experience Builder)」記事で紹介されたカスタム ウィジェット(「表示レイヤーの切り替えウィジェット(layer-switching.zip)」)をArcGIS Enterprise 11 で利用する手順を紹介します。ArcGIS Enterprise 11 以降で Experience Builder のカスタム ウィジェットを使用する場合は、Enterprise のバージョンと Experience Builder (Developer Edition) の互換性があることを事前に確認してください。 ステップ1:Web サーバーでカスタム ウィジェットをホスト Web AppBuilder とは異なり、Experience Builder のカスタム ウィジェットはコンパイルしたファイルを Web サーバーでホストする必要があります。 layer-switching ウィジェットを <Experience Builder (Developer Edition) のダウンロード ディレクトリ >/client/your-extensions/widgetsフォルダーにコピーします。 client ディレクトリで「npm run build:prod」コマンドを実行します。 コマンド実行が完了すると、コンパイルされたウィジェットが<Experience Builder (Developer Edition) のダウンロード ディレクトリ >/client/dist-prod/widgetsフォルダーに表示されます。 上の手順でコンパイルされた「layer-switching」ウィジェットを、Web サーバーでホストします。 例:IIS の場合 C:\inetpub\wwwroot\exb-dev\layer-switching カスタム ウィジェットをデプロイするとカスタム ウィジェットの Portal に登録する際に使用するマニフェスト URLを取得します。 例:https://<server.domain.com>/exb-dev/layer-switching/manifest.json ステップ2:カスタム ウィジェットを Portal に登録 ArcGIS Enterprise の管理者として Portal にログインし、「マイ コンテンツ」 → 「新しいアイテム」 → 「アプリケーション」を選択します。 次に、Experience Builder ウィジェットを選択し、ステップ1で準備した URL を Manifest URL に設定し、「次へ」をクリックします。 ウィジェットのタイトルやタグ、概要などを設定し、アイテムを保存します。 ステップ3:カスタム ウィジェットを Portal で共有 保存されたカスタム ウィジェットは、他の ArcGIS Enterprise と同様にアイテムとして登録されます。必要に応じて組織内やグループに共有します。 ステップ4:カスタム ウィジェットをアプリに追加する ウィジェットを使用するには、Creator ユーザー タイプなどのコンテンツを作成する権限を持つユーザーとして Portal にログインし、任意の Experience Builder アプリケーションを作成します。 ウィジェット ペインを下にスクロールすると、[カスタム] セクションの下に登録したカスタム ウィジェットが表示され、他のウィジェットと同様に、アプリに追加できます。 ArcGIS Experience Builder で作成したアプリでウィジェットにあるボタンをクリックすることで、Web マップに設定されているレイヤーの表示が切り替わることを確認できます。 まとめ ArcGIS Enterprise に ArcGIS Experience Builder のカスタム ウィジェットを追加する手順を紹介しました。すぐに使える Web アプリケーションの基盤とすぐに利用できる機能に加えて、それぞれの業務に必要な機能のみをカスタム ウィジェットとして、ローコードで開発することで、ArcGIS Enterprise に付属する ArcGIS Experience Builder の標準機能にはない機能を組織内で利用できるようになります。 関連リンク ArcGIS Experience Builder (Developer Edition) 開発リソース集:ArcGIS Experience Builder (Developer Edition) 表示レイヤーの切り替えウィジェット Add custom widgets—ArcGIS Experience Builder | Documentation
... View more
08-23-2022
05:11 PM
|
0
|
0
|
1685
|
DOC
|
はじめに リモートワークにおけるコラボレーションツールとして、Microsoft Teams を利用している方も多いかと思います。 今回は、Microsoft Teams の Webhook と ArcGIS API for Python との連携方法として、ArcGIS のバッチジオコーディング処理とその結果をフィーチャ レイヤーとして公開する処理が終了したら、Teams に通知する方法を紹介します。 Microsoft Teams に Incoming Webhook の作成 1. Microsoft Teams の任意のチャネルの「…」をクリックし、「コネクタ」を選択します。 2. 表示されたコネクタ一覧から「Incoming Webhook」を追加します。 3. 追加された「Incoming Webhook」の「構成」を選択します。 4. 任意の名前を入力し、「作成」を選択します。 5. Webhook URL が作成されるため、この URL 情報を記録し、「完了」を選択します。URL の情報や画像の変更については、手順3に記載の「構成」から再度、確認・変更することができます。 6. Incoming Webhook が追加されると、チャネルに以下のようなメッセージが表示されます。 Python から Microsoft Teams にメッセージを送信する 7. 実行環境として、今回は ArcGIS Online のノートブックを利用します。ArcGIS Pro の Python を利用することも可能です。 8. 最初に ArcGIS API for Python による実装部分です。例として、今回はバッチ ジオコーディング処理の結果をフィーチャ サービスとして公開するまでの処理を利用します。 # ArcGIS Online へログイン
from arcgis.gis import GIS
agol_user = "ユーザ名"
gis = GIS("https://www.arcgis.com/", agol_user)
from arcgis.geocoding import batch_geocode
# 住所リスト
addresses = ['東京都千代田区平河町2-7-1', '北海道札幌市中央区北4条西4丁目1-1', '名古屋市中区丸の内3-17-6', '大阪府大阪市淀川区宮原2-14-14', '福岡県福岡市博多区上呉服町10-1']
# バッチジオコーディング(https://developers.arcgis.com/python/api-reference/arcgis.geocoding.html#batch-geocode)
batched = batch_geocode(addresses, as_featureset=True, lang_code="JP")
# バッチジオコーディング結果を Pandas の Spatially Enabled DataFrame オブジェクトとして表示
import pandas as pd
result = batched.sdf
result
# フィーチャ レイヤーとして公開
from arcgis.features import GeoAccessor, GeoSeriesAccessor
lyr =result.spatial.to_featurelayer("geocodingResult202206", gis=gis)
lyr 9. 処理の完了後に pymstems というライブラリを使って、Teams にメッセージを送信します。pip install コマンドで、pymsteams パッケージをインストールします。 パッケージの管理に関する詳細については、「ArcGIS Notebooks での Python の使用方法の理解」の「3. ArcGIS Notebooks のランタイム、環境、およびパッケージ」を参照ください。 # Teams 連絡用のパッケージをインストール
!pip install pymsteams 10. Pymsteams モジュールをインポートします。 # Teams にメッセージ通知するためのモジュール
import pymsteams 11. 事前に作成された URL を指定し、タイトルやテキストを設定し、send() メソッドを使ってメッセージを送信します。 # 作成された URL
teamsURL = "https://xxxxxxx.webhook.office.com/webhookb2/xxxxxxxxxxxxxx/IncomingWebhook/xxxxxxxxxxxxxx/xxxxxxxxxxxxxx"
myTeamsMessage = pymsteams.connectorcard(teamsURL)
myTeamsMessage.title("通知") # タイトル
myTeamsMessage.text("処理が完了しました") # 通知テキスト
myTeamsMessage.send() 12. 今回作成した全体のコードは以下となります。 # ArcGIS Online へログイン
from arcgis.gis import GIS
agol_user = "ユーザ名"
gis = GIS("https://www.arcgis.com/", agol_user)
from arcgis.geocoding import batch_geocode
# 住所リスト
addresses = ['東京都千代田区平河町2-7-1', '北海道札幌市中央区北4条西4丁目1-1', '名古屋市中区丸の内3-17-6', '大阪府大阪市淀川区宮原2-14-14', '福岡県福岡市博多区上呉服町10-1']
# バッチジオコーディング(https://developers.arcgis.com/python/api-reference/arcgis.geocoding.html#batch-geocode)
batched = batch_geocode(addresses, as_featureset=True, lang_code="JP")
# バッチジオコーディング結果を Pandas の Spatially Enabled DataFrame オブジェクトとして表示
import pandas as pd
result = batched.sdf
result
# フィーチャ レイヤーとして公開
from arcgis.features import GeoAccessor, GeoSeriesAccessor
lyr =result.spatial.to_featurelayer("geocodingResult202206", gis=gis)
lyr
# Teams 連絡用のパッケージをインストール
!pip install pymsteams
# Teams にメッセージ通知するためのモジュール
import pymsteams
# 作成された URL
teamsURL = "https://xxxxxxx.webhook.office.com/webhookb2/xxxxxxxxxxxxxx/IncomingWebhook/xxxxxxxxxxxxxx/xxxxxxxxxxxxxx"
myTeamsMessage = pymsteams.connectorcard(teamsURL)
myTeamsMessage.title("通知") # タイトル
myTeamsMessage.text("処理が完了しました") # 通知テキスト
myTeamsMessage.send() 13. 送信が完了すると、チャネルにメッセージが通知されます。 まとめ 弊社でも、いくつかのプロジェクトなどで今回ご紹介した仕組みを利用して、日次での処理の結果通知(成功/エラー内容の通知)や比較的時間がかかる処理終了後に Teams 側に通知しています。ぜひ、これを機会に Microsoft Teams の Webhook と ArcGIS API for Python との連携をお試しいただければと思います。 関連リンク ArcGIS API for Python(ESRIジャパン製品ページ) さわって覚える ArcGIS API for Python ArcGIS API for Python(米国Esri ページ(英語))
... View more
06-27-2022
07:02 PM
|
0
|
0
|
4229
|
DOC
|
ArcGIS Pro でよく使用する解析機能を ArcGIS Enterprise では Web ツール(解析ツール)として利用でき、新しいデータを作成したり、空間的な分析を行ったりといった、特定の問題を解決するのに役立ちます。以下は、利用可能な解析ツールの一例です。 ※解析ツールは「公開者」ロール以上の権限や、ツールによっては ArcGIS Online のアカウント等が必要な場合があります。 今回は、解析ツールの活用例として、自社の拠点(営業所や倉庫など)と、浸水想定区域のデータを活用して、自社拠点の浸水リスクについて分析していきます。 本ブログでは ArcGIS Enterprise 10.8.1 の標準解析ツールを使用しています。 Map Viewer で Web ツールを使用する Map Viewer を起動し、予め、自社の拠点情報を示すポイントと「国土数値情報 災害情報レイヤー」のうち「浸水想定区域」レイヤーを表示します。 [解析] ボタンをクリックし、[近接エリアの分析] → [バッファーの作成] をクリックします。 [① バッファー処理するフィーチャを含むレイヤーを選択] で、自社の拠点情報のレイヤーを選択します。 [② バッファー サイズを入力] で [距離] を選択し、距離の値には [1 2] を入力し、単位は [キロメートル] を選択します。 [③ 結果レイヤーの名前] には、出力されるレイヤー名を(任意の半角英数字またはアンダースコア (_) を利用)入力し、[分析の実行] をクリックします。 自社拠点から、1km、2km のバッファーが作成されます。 次に、[解析] ボタンをクリックし、[データの結合] → [フィーチャの結合] をクリックします。 [① ターゲット レイヤーの選択]にステップ5で指定したレイヤーを選択します。 [② ターゲット レイヤーに結合するレイヤーの選択] で [国土数値情報 災害情報レイヤー 浸水想定区域] を選択します。 [③ 結合タイプの選択] で [空間リレーションシップの選択] および [交差する] を選択します。 [④ 結合方法の選択] で以下の通り設定します。 1 対 1 の結合 統計情報の追加 A31_001:最大(A31_001 フィールドに浸水深のランクコードが格納されています) [⑤ 結果レイヤーの名前] には、出力されるレイヤー名を(任意の半角英数字またはアンダースコア (_) を利用)入力し、[分析の実行] をクリックします。 自社拠点から 1km、2km のバッファーを作成したポリゴンに、想定浸水区域の最大値の情報が結合(Maximum A31_001)されたレイヤーが作成されます。 以下は、結合された浸水深ランクごとにシンボルを変更したイメージです。 自社の拠点と、今回の様な浸水想定区域データといった災害リスク情報を重ね合わせるだけではなく、解析ツールも併せて活用することで、自社拠点周辺にどういった潜在リスクが存在するかも把握することが可能です。例えば、拠点の場所だけでみると、浸水深ランクが低い自社拠点も、2km 圏内に広げてみることで、より大きなリスクが存在することも把握可能となり、BCP策定や避難場所の検討に向けた情報として活用することが可能でしょう。 Web AppBuilder でWeb ツールを使用する Map Viewer の他に、Web AppBuilder でも Web ツール(解析ツール)を使用することができます。 Web AppBuilder では、 [解析] ウィジェットに使用したい解析ツールを選択することで、Map Viewer と同じように解析ツールを利用可能です。 本ブログでは、Map ViewerとWeb AppBuilder を使用して、Web ツール(解析ツール)を使用する方法を紹介しました。Web 上から簡単に解析機能を利用することができますので、是非、自社での業務にお役立てください。 関連リンク ArcGIS Enterprise での解析について—Portal for ArcGIS | ArcGIS Enterprise のドキュメント 解析の実行—Portal for ArcGIS | ArcGIS Enterprise のドキュメント 解析ウィジェット—ArcGIS Web AppBuilder | ArcGIS Enterprise のドキュメント
... View more
12-14-2021
06:09 PM
|
0
|
0
|
1017
|
POST
|
Hi Dominique, Thank you for your reply. My sample app worked fine by edit mimeTypes.json. Thank you!!
... View more
11-09-2014
04:51 PM
|
0
|
0
|
556
|
POST
|
Hi, When I execute Extract Data sample using gpk, I cannot get the output zip file because the directory is difference between Uri and actually file is generated. Please refer the attached sample application to reproduce this behavior. The code of sample application is based to ExtractData.xaml/ExtractData.xaml.cs on Github. If you are able to reproduce, please teach me how I can get the extract data file. Thanks,
... View more
11-04-2014
09:25 PM
|
0
|
3
|
3039
|
POST
|
Hi Mike, Thank you for your reply. I hope that Time Slider control is added for the next release. Also, please consider adding samples of the Time-Aware Layers. Cheers
... View more
10-08-2014
05:46 PM
|
0
|
0
|
464
|
POST
|
According to the Desktop API reference, TimeInfo.DefaultTimeWindow Property is gets the default time slider window size. https://developers.arcgis.com/net/desktop/api-reference//html/P_Esri_ArcGISRuntime_ArcGISServices_TimeInfo_DefaultTimeWindow.htm TimeInfo.DefaultTimeWindow Property : Gets the the default time slider window size. However, I think that Time Slider control is not provide. Is there any plan to add Time Slider?
... View more
10-08-2014
12:58 AM
|
0
|
2
|
2990
|
POST
|
This issue is seems to be related to the NIM063669. NIM063669: Corruption in the multi-byte file name while downloading it with Attachment Editor in Silverlight API. In Silverlight API ver3.2, this error occurs with IE & Firefox, Chrome.
... View more
02-20-2014
12:27 AM
|
0
|
0
|
571
|
POST
|
I found that it is necessary to use the OAuthAuthorize.Initialize method. https://developers.arcgis.com/silverlight/api-reference/ESRI.ArcGIS.Client.Toolkit~ESRI.ArcGIS.Client.Toolkit.OAuthAuthorize~Initialize.html The part of sample code is below and it works successfully. However, I don't know whether my implement is right or not, because the online sample is not provided. Is this code right? public MainPage()
{
InitializeComponent();
OAuthAuthorize.Initialize(SERVERURL);
}
private void SignInButton_Click(object sender, RoutedEventArgs e)
{
var oauthClientInfo = new IdentityManager.OAuthClientInfo();
oauthClientInfo.OAuthAuthorize = new OAuthAuthorize();
oauthClientInfo.ClientId = APPID;
oauthClientInfo.RedirectUri = REDIRECTURL;
oauthClientInfo.CallbackUrl = CALLBACKURL;
var svrInfo = new IdentityManager.ServerInfo();
svrInfo.TokenAuthenticationType = IdentityManager.TokenAuthenticationType.OAuthAuthorizationCode;
svrInfo.ServerUrl = SERVERURL;
svrInfo.OAuthClientInfo = oauthClientInfo;
var svrInfos = new List<IdentityManager.ServerInfo>();
svrInfos.Add(svrInfo);
var im = IdentityManager.Current;
im.RegisterServers(svrInfos);
try
{
IdentityManager.GenerateTokenOptions options = new IdentityManager.GenerateTokenOptions();
options.OAuthAuthorize = oauthClientInfo.OAuthAuthorize;
options.TokenAuthenticationType = IdentityManager.TokenAuthenticationType.OAuthImplicit;
im.GenerateCredentialAsync(SERVERURL, (credential, error) =>
{
if (error == null && credential != null)
{
im.AddCredential(credential);
this.SignInButton.Visibility = Visibility.Collapsed;
this.UserNameTextBlock.Text = credential.UserName;
this.UserNameStackPanel.Visibility = Visibility.Visible;
this.SignOutButton.Visibility = Visibility.Visible;
LoadWebMap(credential);
}
}, options);
}
}
... View more
02-13-2014
07:10 PM
|
0
|
0
|
280
|
POST
|
In version 3.2 of the ArcGIS API for Silverlight, OAuth2 authentication workflows is supported. When executing the authentication in a Silverlight app , it will provide an "openWindow Call Failed" error message. When using WPF 10.2, OAuth2 authentication window will be displayed. The function which displays an authentication dialog is provided in JavaScript and Flex API. - Flex : IdentifyManager https://developers.arcgis.com/flex/api-reference/com/esri/ags/components/IdentityManager.html https://developers.arcgis.com/flex/sample-code/portal-signin.htm - JavaScript : OAuthHelper https://developers.arcgis.com/javascript/jssamples/portal_oauth_inline.html I would like to know how to implement OAuth2 authentication workflows.
... View more
02-04-2014
12:27 AM
|
0
|
1
|
2400
|
POST
|
Thank you for comment. Your method is much easier, however it is a little bit heavy to show the Latitude and Longitude with mouse move at all time. I would like to consider to use the geometry service. Thanks!
... View more
04-11-2012
08:11 PM
|
0
|
0
|
348
|
POST
|
I would like to know that how to implementation to show the Latitude and Longiitude with mouse move on north-polar stereo map (WKID : 102018) and south-polar stereo map (WKID : 102021) other than calling a geometry service. I have tried the below code, but can't get correct value. Please teach me a correct expression.
private void map1_MouseMove(object sender, MouseEventArgs e)
{
if (map1.SpatialReference.WKID == 102018)
{
System.Windows.Point screenPoint = e.GetPosition(map1);
MapPoint mapPoint = map1.ScreenToMap(screenPoint);
Double p = Math.Sqrt((mapPoint.Y * mapPoint.Y) + (mapPoint.X * mapPoint.X));
Double lat = Math.Acos(mapPoint.X / p);
lat = lat * 180 / Math.PI + 90;
Double lon = Math.PI / 2 - Math.Atan(p / (2 * 6378.137 * 1000));
lon = lon * 180 / Math.PI / 2;
LatitudeTextBlock.Text = string.Format("Latitude: Y = {0}", lat);
LongiitudeTextBlock.Text = string.Format("Longiitude: X = {0}", lon);
}
}
... View more
04-10-2012
12:36 AM
|
0
|
2
|
2356
|
Online Status |
Offline
|
Date Last Visited |
10-23-2023
07:22 AM
|