|
POST
|
Hello Morten, Thank you for the information. var layer = MyMapView.Map.OperationalLayers[0]; var idResults = await MyMapView.IdentifyLayerAsync(layer, e.Position, pixelTolerance, returnPopupsOnly, maxResults); We were able to get elements of GeoElements from idResults.SublayerResults. Thank you very much!
... View more
12-13-2017
01:13 AM
|
0
|
0
|
2107
|
|
POST
|
Does IdentifyLayerAsync Method also support FeatureCollectionLayer? https://developers.arcgis.com/net/latest/forms/guide/identify-features.htm https://developers.arcgis.com/net/latest/ios/api-reference//html/T_Esri_ArcGISRuntime_Mapping_FeatureCollectionLayer.htm The GeoElement list is empty. var layer = MyMapView.Map.OperationalLayers[0];
var pixelTolerance = 20;
var returnPopupsOnly = true;
var maxResults = 1;
var idResults = await MyMapView.IdentifyLayerAsync(layer, e.Position, pixelTolerance, returnPopupsOnly, maxResults);
foreach (GeoElement idElement in idResults.GeoElements)
{
Feature idFeature = idElement as Feature;
//idLayer.SelectFeature(idFeature);
}
FeatureCollectionLayer idLayer = idResults.LayerContent as FeatureCollectionLayer;
FeatureCollectionTable tables = (idLayer.FeatureCollection.Tables).FirstOrDefault();
var fields = tables.LayerInfo.Fields;
... View more
12-11-2017
03:12 AM
|
0
|
3
|
2311
|
|
POST
|
Hello Mike, I am always grateful for your help. I understood about the situation of support. Regards, Takahiro Kamiya.
... View more
11-26-2017
05:59 PM
|
0
|
2
|
2050
|
|
POST
|
It is a Windows OS that runs on XenApp, but is there a problem? Is there a problem with the operating environment of Runtime? Personally, I think that it is okay if an instance of EC 2 and other virtualization technologies satisfy the operating environment of Runtime. XenApp and XenDesktop - Virtual Apps and Desktops - Citrix Regards. Takahiro Kamiya
... View more
11-22-2017
03:52 AM
|
0
|
5
|
2248
|
|
DOC
|
Xamarin.Forms でのアプリ開発については、これまで「Xamarin.Forms で地図の種類を切り替えるロジックを実装する」や「Xamarin.Forms で色々な地図を表示する」で背景地図の表示方法を中心に紹介してきました。 今回も背景地図をテーマとして、ベクター タイルの利用についてご紹介します。標準のベクター タイルをそのまま使用するだけでなく、その特長を生かすためにスタイルを変更して、変更後のベクター タイルを ArcGIS Runtime SDK for .NET ※1 を利用して Xamarin.Forms で表示しました。その方法についてご紹介していきます。 ※1 ArcGIS Runtime SDK for .NET は、ArcGIS プラットフォームを利用した地図開発用の SDK です。Windows プラットフォーム向けの開発キットですが、Xamarin.Forms を使用した iOS/Android アプリ開発にも対応しています。 1.ベクター タイルとは ベクター タイルは、背景地図等に使用されるタイル配信型のレイヤーをベクター形式のタイルで提供するものです。ArcGIS Online の最新の背景地図もベクター タイルで提供されています。その他、国土地理院の背景地図もベクター タイルでの提供実験が開始されており、ArcGIS Runtime SDK for .NET を利用することで Xamarin.Forms でも簡単に背景地図として組み込むことが可能です。 ベクター タイルは、その名の通りベクター データとして配信されますので、地図を拡大しても地物をシャープに表示できます。また、注記の文字をラベルとして動的に表示し、地図を回転しても注記を適切な向きで表示することができます。さらに道路や建物などのスタイルを好みで変更することも可能です。 ベクター タイルの配信には、データ転送を効率良く行うためのバイナリ フォーマット(Google Protocol Buffers)が利用されています。そのため、タイルで区切られたベクター データを、クライアント側で描画することで、従来のベクター データよりも高速で表示することが可能になりました。 2.ベクター タイルのスタイル編集 通常、ベクター タイルのスタイルを変えるには、スタイル ファイルをダウンロードして、JSON ファイルを書き換えるなどのステップを踏む必要があります。そうしたステップ無しに簡単にベクター タイルのスタイルを変更できる、GitHub に公開されている mapstyler を使用してスタイルを変更しました。 mapstyler の使用方法については ArcGIS ブログの「ベクター タイル ベースマップのスタイルをかんたんにかえてみよう」をご参照ください。 3.ベクター タイルを Xamarin.Forms で表示 mapstyler で変更したスタイルは ArcGIS Online 上にタイル レイヤーとしてアップロードされますので、それを使用して Xamarin.Forms で表示しました。以下の画面は実際に mapstyler でスタイルを変更して Xamairn.Forms(iOS)で表示した例です。 以下に、ArcGIS Online に登録してから Xamarin.Forms で表示するまでの手順についてご紹介します。 3-1.ArcGIS Online のアイテム URL の確認 mapstyler から登録した ベクター タイルは ArcGIS Online にアイテムとして登録されます。アイテム詳細ページのURL(https://xxxxx.maps.arcgis.com/home/item.html?id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)がアイテム URL となり、アプリでベクター タイルを表示する際この URL を使用します。 3-2.ArcGIS Runtime SDK for .NET の利用 ArcGIS Runtime SDK for .NET では、ベクター タイルを表示するための ArcGISVectorTiledLayer クラスが用意されていますので、そのクラスを利用することで簡単に表示することができます。 コードの実装(C#) ArcGIS Online にアイテムとして登録したベクター タイルは、ArcGISVectorTiledLayer クラスのコンストラクタでアイテムの URL を指定することで呼び出せます。「3-1. ArcGIS Online のアイテム URL の確認」で登録したアイテム URL を使用します。 // ArcGIS Online のアイテム URL
private string _vectorTiledLayerUrl = "http://www.arcgis.com/home/item.html?id=dcbbba0edf094eaa81af19298b9c6247";
ArcGISVectorTiledLayer クラスのコンストラクタに指定する URL には、ArcGIS Online 以外で配信されているベクター タイルの URL も設定できます。 例えば、地理院が提供するベクター タイルの URL(https://cyberjapandata.gsi.go.jp/xyz/{dataID}/{z}/{x}/{y}.{拡張子})を指定することも可能です。 // URL を指定して、新しい ArcGISVectorTiledLayer のインスタンスを作成
_vectorTiledLayer = new ArcGISVectorTiledLayer(new Uri(_vectorTiledLayerUrl));
作成した ArcGISVectorTiledLayer のインスタンスを Basemap クラスに指定してベースマップとして呼び出します。 private void Initialize()
{
// URL を指定して、新しい ArcGISVectorTiledLayer のインスタンスを作成
_vectorTiledLayer = new ArcGISVectorTiledLayer(new Uri(_vectorTiledLayerUrl));
// ベクター タイルを使用して新しいベースマップを作成
Map myMap = new Map(new Basemap(_vectorTiledLayer));
// 作成したマップを MapView に割り当て
MyMapView.Map = myMap;
}
4.最後に 今回はベクター タイルのスタイルを変更する方法として mapstyler を使用しましたが、それ以外の方法でスタイルを変更して、自分だけのオリジナルの地図を作成・表示することも可能です。ご興味のある方は挑戦してみてください! 今回作成したサンプルアプリケーションは、ESRIジャパンの GitHub にも公開していますので、ぜひ、触ってみてください! GitHub - EsriJapan/arcgis-samples-dotnet: ArcGIS Runtime SDK for .NET のサンプル集 ■関連リンク ArcGIS for Developers(Esri | ESRIジャパン) ArcGIS for Developers 開発リソース集 Esri Japan GitHub
... View more
10-31-2017
07:37 PM
|
1
|
0
|
1749
|
|
DOC
|
ArcGIS をベースとしたアプリの開発を行う場合に、ArcGIS Runtime SDK や ArcGIS API for JavaScript といった Esri 製の SDK/API をご提供していますが、Esri はその他にも多くのオープンソースの開発ライブラリを提供しています。 今回はオープンソース ライブラリの node.js を使用した Node ArcGIS について紹介します。 Node ArcGIS には幾つかの機能が実装されており、今回は ArcGIS Online のアイテム情報の検索についてご紹介します。 1.Node ArcGIS とは Node ArcGIS とは、ArcGIS プラットフォーム(ArcGIS Online および ArcGIS Enterprise)とのインタフェース用のクライアント ライブラリで、コンテンツやユーザー・グループなどの管理を行うことに特化したライブラリです。 ユーザー情報の閲覧や更新、ユーザーが登録しているコンテンツの削除や更新など、多くのデータが存在する場合は、UI を操作することによる個別処理ではなく、プログラムを組んで一括で処理したい場合があります。そのようなときに Node ArcGIS を利用することで簡単に処理できます。 Node ArcGIS の仕様は Github 上で公開されています。 http://esri.github.io/node-arcgis/ 2.Node ArcGIS の利用 ブラウザ上で ArcGIS Online から目的のアイテム情報を探す場合、時間を要することがあります。そこで、今回は Node ArcGIS を利用して ArcGIS Online から目的のアイテム情報の検索を行いました。 まず、はじめに Node ArcGIS を使用するために npm コマンドからインストールします。 $ npm install arcgis arcgis モジュールをロードしてインスタンス化して使用します。 ArcGIS プラットフォームへのアクセスにはトークンが必要です。 var arcgis = require(‘arcgis’);
var ago = arcgis({token: '-9JLzF_siaVbSBIjRxoBvsWl5jArTSqZ9KDwkn4t_MvMKf-CggNf23FMQbSgKg3eYj_4tQxeC6_clA5kdvMvYR_6lHJ2nM97tSaj1QdqcRzXIUFoEvU8q45BvPCniNRTSQ0OvgaiR7Qt8--ZJuMt2w..'});
※ ArcGIS for Developers でアプリケーション登録を行うことで、認証プロセスで必要となるアプリケーション認証情報(クライアントID、クライアント シークレット、トークン)を取得できます。 2-1.アイテムの検索(キーワードを利用した検索) ArcGIS Online のアイテム情報、ユーザー・グループ情報を対象にして検索を行います。 アイテム検索には search メソッドを使用します。 次のコードは search メソッドを使用した例です。検索パラメータとして queryString と num を使用しました。queryString には 'owner:esri AND (type:"Feature Service")' を指定し、num には 10 を指定して 10件の結果を取得しています。検索は Esri が所有するフィーチャ サービスを検索しました。 index.js router.get('/', function(req, res, next) {
var options = {
queryString: 'owner:esri AND (type:"Feature Service")',
num: 10
};
ago.search(options)
.then(function(result) {
console.log(result.results);
res.render('index', { title: 'ArcGIS', featureService: result.results});
});
});
【リクエスト パラメータ】 Option Default Description queryString ‘“”’’ 検索文字列(「コンテンツ検索」を参照) num 100 1 ページあたりの検索結果 page 0 ページ番号(たとえば、1 を指定すると 2 ページ目【100~200番目の結果】を表示します。) sort ‘created’ 検索結果をソートするフィールド order ‘desc’ 検索結果の表示順(昇順または降順) ‘asc’ or ‘desc’ リクエスト結果 リクエスト結果として『id、owner、title、type、url、access』の各情報を表示しました。 ※ express を使用し、リクエスト結果を jade で表示しています。 Search メソッドのリクエスト結果の詳細な仕様は Node ArcGIS の API リファレンスをご参照ください。 2-2.アイテムの詳細情報の検索 アイテム ID からアイテムの詳細情報を検索します。 アイテム詳細情報へのアクセスには item メソッドを使用します。また、検索だけではなくアイテム情報の削除や更新なども行えます。 次のコードは、アイテム ID からアイテム情報を取得する例です。取得したアイテムに対しての削除や更新を行う場合は、item.delete や item.update メソッドで処理できます。 index.js router.get('/item/:id', function(req, res, next) {
var itemId = req.params.id;
ago.item(itemId)
.then(function(item) {
console.log(item);
res.render('item', { title: 'ArcGIS', item: item });
});
}); 【リクエスト パラメータ】 アイテム ID の文字列(例:0c112e237b874ee6ab58dba66933ac5e) リクエスト結果 URL からアイテム ID を指定して、そのアイテム ID の情報を表示しました。アイテム情報として、『title、description、snippet、spatialReference、extent、url、size』の各情報を表示しました。 ※ express を使用し、リクエスト結果を jade で表示しています。 item メソッドのリクエスト結果の詳細な仕様は Node ArcGIS の API リファレンスをご参照ください。 3.まとめ 普段、筆者も ArcGIS Online や ArcGIS Enterprise の管理はブラウザの UI 操作で行うことが多く、アイテム数が多い場合は一括で処理したいと思うことがあります。Node ArcGIS は、アイテム情報の検索だけではなくアイテム情報の更新や削除などの機能もあるので、それらの機能を利用して一括処理できるプログラムを組むことで業務の効率化にも繋がると思いました。 Node ArcGIS ですが、ここで紹介した以外にもユーザー管理やグループ管理など多くの機能があるので、興味がある方はぜひ触ってみてください。 また、Node ArcGIS と同じように ArcGIS Online や ArcGIS Enterprise の管理を行うことができる開発ツールとして ArcGIS API for Python もあるので、興味のある方は触ってみてください。 今回作成したサンプルは、私の GitHub にも公開していますので、ぜひ、触ってみてください! ValueCreation/node-arcgis | GitHub ■関連リンク ArcGIS for Developers(Esri| ESRIジャパン) ArcGIS for Developers 開発リソース集 Esri Japan GitHub Node ArcGIS
... View more
09-11-2017
10:04 PM
|
1
|
0
|
1009
|
|
POST
|
Hello Luke, Sorry, the reply was delayed. Thank you for information. This method seems to be OK. Thank you. Takahiro.
... View more
08-18-2017
02:47 AM
|
0
|
0
|
1229
|
|
POST
|
Thank you for information. I could access related tables by adding to the same map. How do I edit the data for acquired relatedTables?
... View more
08-04-2017
02:23 AM
|
0
|
0
|
1123
|
|
POST
|
Hello, Drop it on the map with GraphicsOverlay, If you delete it with Clear, I am in trouble that the memory will not be released. Do you have any problems? // Copyright 2016 ESRI
//
// All rights reserved under the copyright laws of the United States
// and applicable international laws, treaties, and conventions.
//
// You may freely redistribute and use this sample code, with or
// without modification, provided you include the original copyright
// notice and use restrictions.
//
// See the Sample code usage restrictions document for further information.
//
#include <sys/resource.h>
#include "ArcGISTiledLayer.h"
#include "Basemap.h"
#include "Map.h"
#include "PolygonBuilder.h"
#include "PolylineBuilder.h"
#include "SimpleFillSymbol.h"
#include "SimpleLineSymbol.h"
#include "ArcGIS.h"
ArcGIS::ArcGIS(QWidget *parent /*=nullptr*/):
QMainWindow(parent)
{
SpatialReference sr(30165);
MapGraphicsView *m_mapView = new MapGraphicsView(this);
ArcGISTiledLayer *tiledLayer = new ArcGISTiledLayer(new TileCache("/users/test/gis001/tpk/16000-4000.tpk", this), this);
tiledLayer->setVisible(true);
tiledLayer->setOpacity(0.8);
Map *m_map = new Map(new Basemap(tiledLayer, this), this);
m_map->setInitialViewpoint(Viewpoint(Point(110867.18539903179,-106473.50196292577, sr), 10000.0));
m_mapView->setMap(m_map);
GraphicsOverlay *graphicsOverlay = new GraphicsOverlay(this);
graphicsOverlay->setRenderingMode(GraphicsRenderingMode::Static);
m_mapView->graphicsOverlays()->append(graphicsOverlay);
setCentralWidget(m_mapView);
// グラフィック生成前メモリ使用量を表示
// Display memory usage before graphic generation
print();
// 10000回グラフィックを生成(三角形+塗り潰し)
for (int i = 0; i < 10000; ++i) {
PolygonBuilder polyBUilder(sr);
polyBUilder.addPoint(Point(110867.18539903179 + i * 10, -106473.50196292577 + i * 10, sr));
polyBUilder.addPoint(Point(110865.2853990318 + i * 10, -106474.8019629257 + i * 10, sr));
polyBUilder.addPoint(Point(110865.48539903181 + i * 10, -106475.6019629257 + i * 10, sr));
polyBUilder.addPoint(Point(110868.8853990318 + i * 10, -106488.10196292578 + i * 10, sr));
SimpleFillSymbol *nestingSymbol = new SimpleFillSymbol(SimpleFillSymbolStyle::Solid, QColor("#FF008000"), this);
Graphic *g = new Graphic(polyBUilder.toGeometry(), nestingSymbol, this);
graphicsOverlay->graphics()->append(g);
}
// グラフィック生成後メモリ使用量を表示
// Display memory usage before graphic generation
print();
#if 0
// 削除パターン1 GraphicListModelをclearする
graphicsOverlay->graphics()->clear();
// グラフィック削除後メモリ使用量を表示
// Display memory usage after graphic deletion
print();
// 結果 -> メモリ使用量変わらず
// result -> memory usage remains unchanged
#elif 0
// 削除パターン2 GraphicListModelから1個ずつremoveする
GraphicListModel *model = graphicsOverlay->graphics();
while (model->size() > 0) {
Graphic *g = model->first();
model->removeOne(g);
}
// グラフィック削除後メモリ使用量を表示
// Display memory usage after graphic deletion
print();
// 結果 -> メモリ使用量変わらず
// result -> memory usage remains unchanged
#elif 0
// 削除パターン3 GraphicListModelから1個ずつremoveし、さらにGraphicを自前でdeleteする
GraphicListModel *model = graphicsOverlay->graphics();
while (model->size() > 0) {
Graphic *g = model->first();
model->removeOne(g);
delete g;
}
// グラフィック削除後メモリ使用量を表示
// Display memory usage after graphic deletion
print();
// 結果 -> メモリ使用量変わらず
// result -> memory usage remains unchanged
#elif 0
// 削除パターン4 GraphicListModelから1個ずつremoveし、さらにGraphicとその中のSymbolを自前でdeleteする
GraphicListModel *model = graphicsOverlay->graphics();
while (model->size() > 0) {
Graphic *g = model->first();
Symbol *sls = g->symbol();
model->removeOne(g);
g->setSymbol(NULL);
delete sls;
delete g;
}
// グラフィック削除後メモリ使用量を表示
// Display memory usage after graphic deletion
print();
// 結果 -> メモリ使用量変わらず
// result -> memory usage remains unchanged
#elif 1
// 削除パターン5 GraphicListModelから1個ずつremoveし、さらにGraphicとその中のSymbolを自前でdeleteし、
// 加えてGraphicsOverlayまでも削除する
GraphicListModel *model = graphicsOverlay->graphics();
while (model->size() > 0) {
Graphic *g = model->first();
Symbol *sls = g->symbol();
model->removeOne(g);
g->setSymbol(NULL);
delete sls;
delete g;
}
m_mapView->graphicsOverlays()->removeOne(graphicsOverlay);
delete graphicsOverlay;
// グラフィック削除後メモリ使用量を表示
// Display memory usage after graphic deletion
print();
// 結果 -> メモリ使用量変わらず
// result -> memory usage remains unchanged
#endif
}
void ArcGIS::print()
{
struct rusage psinfo;
if (getrusage(RUSAGE_SELF, &psinfo) == 0) {
fprintf(stderr, "memory usage : %ld kb\n", psinfo.ru_maxrss);
}
}
// Copyright 2016 ESRI
//
// All rights reserved under the copyright laws of the United States
// and applicable international laws, treaties, and conventions.
//
// You may freely redistribute and use this sample code, with or
// without modification, provided you include the original copyright
// notice and use restrictions.
//
// See the Sample code usage restrictions document for further information.
//
#ifndef ARCGIS_H
#define ARCGIS_H
#include <QMainWindow>
#include "MapGraphicsView.h"
using namespace Esri::ArcGISRuntime;
class ArcGIS : public QMainWindow
{
Q_OBJECT
public:
ArcGIS(QWidget *parent = nullptr);
private:
void print();
};
#endif // ARCGIS_H
... View more
08-04-2017
01:13 AM
|
0
|
2
|
1613
|
|
POST
|
Hello, I could not get the relate table why. I checked it like a document, but I can not get it why. Are you doing something wrong? Relate features—ArcGIS Runtime SDK for .NET (WPF) | ArcGIS for Developers private const string ServiceUrl= "http://sampleserver6.arcgisonline.com/arcgis/rest/services/ServiceRequest/FeatureServer/0";
// Create feature table for the incident feature service
var relateFeatureTable = new ServiceFeatureTable(new Uri(ServiceUrl));
var relauteFeatureLayer = new FeatureLayer(relateFeatureTable);
:
:
:
// Identify a feature in the 'service request' layer (from a tap on the map, for example)
IdentifyLayerResult idResult = await MyMapView.IdentifyLayerAsync(relauteFeatureLayer, e.Position, 5, false);
ArcGISFeature serviceRequestFeature = idResult.GeoElements.FirstOrDefault() as ArcGISFeature;
if (serviceRequestFeature == null) { return; }
// Get the feature table from the feature
ArcGISFeatureTable serviceRequestTable = serviceRequestFeature.FeatureTable as ArcGISFeatureTable;
// Get a list of tables related to the 'service requests' feature table
IReadOnlyList<ArcGISFeatureTable> relatedTables = serviceRequestTable.GetRelatedTables();
// Assume the comments table is the first (only?) related table
// (if there are many related tables, you can loop through the collection and check the table name)
ArcGISFeatureTable commentsTable = relatedTables.FirstOrDefault();
... View more
08-02-2017
01:32 AM
|
0
|
2
|
1383
|
|
POST
|
Hello, Thank you for your information. It worked without problems. Takahiro kamiya.
... View more
08-02-2017
01:02 AM
|
0
|
0
|
1746
|
|
DOC
|
前回の記事では Xamarin.Forms で ArcGIS Runtime SDK for .NET を使用して背景地図の種類を切り替えるロジックを紹介しました。背景地図は Esri のクラウド GIS「ArcGIS Online」のベースマップ サービスを利用しました。 今回は、ArcGIS 以外の地図配信サービスを利用して「地理院地図、OpenStreetMap、Bing Maps、日本シームレス地質図」などの地図を切り替えるアプリについてご紹介します。 地図配信サービス 今回利用した各地図配信サービスは以下の通りです。 地理院地図:地理院地図とは、地形図、写真、標高、地形分類、災害情報など、国土地理院が捉えた日本の国土の様子を発信するウェブ地図です。地形図や地形分類、標高などの種類が扱えるため多くの用途で利用されています。 引用元:地理院ホーム「地理院地図 ヘルプ」 OpenStreetMap:OpenStreetMap(OSM)は、道路地図などの地理情報データを誰でも利用できるよう、フリーの地理情報データを作成することを目的としたプロジェクトで、ここで作成された地図を利用することができます。 引用元:OpenStreetMap Japan 自由な地図をみんなの手で Bing Maps:Bing Maps (ビング マップ) は、マイクロソフトが提供する地図サービスで、世界各地の都市の詳細な地図を参照することができます。 引用元:Bing Maps「Wikipedia」 日本シームレス地質図:20万分の1日本シームレス地質図は、これまで出版されてきた地質図幅の図郭における境界線の不連続を日本全国統一の凡例を用いることによって解消した新しい地質図です。 引用元:20万分の1日本シームレス地質図 Xamarin での地図の表示 次の画面は、iOS と Android で背景地図を選択している画面です。Xamarin.Forms.API を使用することで、「背景地図を切り替える」という同じ機能が提供できる地図アプリを iOS と Android で開発することができます。 アプリのイメージ(iOS / Android) サンプルコード 以下のコードは、地図を切り替えるロジック部分(C#) のサンプルコードです。XAML に関しては前回の記事を参照してください。今回は C# 部分、つまり地図を切り替えるロジック部分が前回と異なっています。前回は Basemap クラスを中心に使用しましたが、今回は他のクラスも使用しています。 地理院地図は、WebTiledLayer クラスを使用しました。WebTiledLayer クラスでは Web 地図 API が対応している XYZ 方式で提供している地図を扱うことができます(地理院地図は地理院タイルとして XYZ 方式で提供しています)。 OpenStreetMap は、 Basemapクラスを使用することで表示が可能です。 Bing Maps は、BingMapsLayer クラスを使用することで扱うことができます。Bing Map の地図サービスを利用するためには、BingMapsKey と呼ばれる Bing Maps を扱うための Key を取得する必要があります。BingMapsKey は、こちらの Bing maps Dev Center のサイトから取得することができます。 日本シームレス地質図は、WmtsService クラスを使用しました。WMTS(Web Map Tile Service)とは Web 経由で地図画像を提供する仕組みで、Open Geospatial Consortium(OGC:地理情報システム関連技術の標準化を推進する非営利団体)が定めている国際規格の1つです。ですので、日本シームレス地質図以外にも WMTSで提供している地図であれば WmtsService クラスを使用することで扱うことが可能です。 C# private async void OnChangeBasemapButtonClicked(object sender, EventArgs e)
{
var selectedBasemap = await DisplayActionSheet("背景地図の選択", "キャンセル", null, titles);
if (selectedBasemap == "Cancel")
{
return;
}
else if (selectedBasemap == "地理院地図")
{
var templateUri = "https://cyberjapandata.gsi.go.jp/xyz/std/{level}/{col}/{row}.png";
var webTiledLayer = new WebTiledLayer(templateUri);
await webTiledLayer.LoadAsync();
if (webTiledLayer.LoadStatus == Esri.ArcGISRuntime.LoadStatus.Loaded)
{
MyMapView.Map.Basemap = new Basemap(webTiledLayer);
var attribution = @"<a href=""http://maps.gsi.go.jp/development/ichiran.html"" target=""_blank"">地理院タイル</a>";
webTiledLayer.Attribution = attribution;
}
}
else if (selectedBasemap == "OpenStreetMap")
{
MyMapView.Map.Basemap = Basemap.CreateOpenStreetMap();
}
else if (selectedBasemap == "Bing Maps")
{
var bingKey = "AtuE9JPKhNEUj037BMaockdj546C6UQLdK_5cv59kCxOjJoGXteSxqysRWZseWlM";
var bingMapLayer = new BingMapsLayer(bingKey, BingMapsLayerStyle.Road);
MyMapView.Map.Basemap = new Basemap(bingMapLayer);
}
else if (selectedBasemap == "日本シームレス地質図")
{
var WmtsUrl = new System.Uri("https://gbank.gsj.jp/seamless/tilemap/basic/WMTSCapabilities.xml");
WmtsService wmtsService = new WmtsService(WmtsUrl);
await wmtsService.LoadAsync();
if (wmtsService.LoadStatus == Esri.ArcGISRuntime.LoadStatus.Loaded)
{
WmtsServiceInfo wmtsServiceInfo = wmtsService.ServiceInfo;
IReadOnlyList<WmtsLayerInfo> layerInfos = wmtsServiceInfo.LayerInfos;
WmtsLayer wmtsLayer = new WmtsLayer(layerInfos[0]);
MyMapView.Map.Basemap = new Basemap(wmtsLayer);
}
}
}
最後に 今回は ArcGIS Online が提供しているサービス以外の背景地図(地理院地図、OSM、Bing Maps、日本シームレス地質図)を地図アプリで利用する方法を紹介しましたが、ArcGIS Runtime SDK for .NET では他にも多くの機能が備わっています。今後、3D 表示やデータの分析・解析などについても紹介していきたいと思います。 今回作成したサンプルアプリケーションは、ESRIジャパンの GitHub にも公開していますので、ぜひ、触ってみてください! GitHub - EsriJapan/arcgis-samples-dotnet: ArcGIS Runtime SDK for .NET のサンプル集 ■関連リンク ArcGIS for Developers(Esri | ESRIジャパン) ArcGIS Runtime SDK for .NET ArcGIS for Developers 開発リソース集 Esri Japan GitHub
... View more
07-30-2017
05:56 PM
|
1
|
0
|
5184
|
|
POST
|
Hello, Do you also support Win 10 LTSB? Windows 10 Without the Cruft: Windows 10 LTSB (Long Term Servicing Branch), Explained I feel like OK if I installed Microsoft Visual C ++ 2015 Redistributable Update 3. (Testing and debugging applications built with ArcGIS Runtime SDK for .NET requires installation of Microsoft Visual C++ 2015 Redistributable Update 3.)
... View more
07-25-2017
03:53 AM
|
0
|
3
|
2757
|
|
POST
|
Thank you for your information. I tried on the small sample projects but an error occurred. Sorry another platforms until is not tried. Is Cent OS difficult?
... View more
05-02-2017
02:44 AM
|
0
|
1
|
1676
|
| 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 |
05-18-2026
09:12 PM
|