0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

osmdroid-wms を使ってAndroid に国土国交省の地図画像を表示する

Posted at

osmdroid を使って OpenStreetMap の地図を Android に表示する
の続きです

WMS

WMS( Web Map Service ) は、
地図画像を配信するための標準プロトコルです。
日本では、国交省や農研機構がWMSによる地図画像を提供している。

osmdroid-wms

osmdroid でWMS機能をサポートするライブラリ。
現在、ベータ版でうまくいかない場合もある。

国交省の地図画像

国土交通省は、国土の利用や交通機関を扱う行政機関です。
国土数値情報ダウンロードサービスや国土情報ウェブマッピングシステムなどの地理情報を提供している。

国交省 WMS機能説明
http://nlftp.mlit.go.jp/webmapc/help.html#N3

osmdroid-wm ライブラリを取り込む

app/build.gradle
dependencies {

    compile group: 'org.osmdroid', name: 'osmdroid-wms', version: '6.0.2' // 追加する

osmdroid-wms の WMSTileSource

WMS で提供されているタイルを使用するためのクラス

ベースURL、WMSバージョン、レイヤ名などを設定する。

WMS では、東西南北の4辺を指定して、地図の範囲を指定する。
WMSTileSource では、tile2boundingBox というメソッドにより、
osmdroid が必要とするタイルの範囲を自動的に計算するので、
ユーザーは意識する必要がない。

// 国交省の例
aBaseUrl = { "http://nrb-www.mlit.go.jp/webmapc/gis/webmap/wms?SERVICE=WMS&" };
version = "1.1.1" ;
// 市区町村界
layername = "N03-180101_200" ;

WMSTileSource tileSource = new WMSTileSource( aName, aBaseUrl, layername, version, srs, style, size );

MapTileProviderBasic tileProvider = new MapTileProviderBasic(getApplicationContext());

// ベース地図に重ねる
tileProvider.setTileSource(tileSource);
TilesOverlay tilesOverlay = new TilesOverlay(tileProvider, this.getBaseContext());
mMapView.getOverlays().add(tilesOverlay);

スクリーンショット

左はベースのOSM地図、右は市区町村界を重ねたもの。
wms1_osm.png wms1_border.png

github にサンプルコードを公開した
https://github.com/ohwada/Android_Samples/tree/master/Osmdroidwms1

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?