mdroid-wms を使ってAndroid に国土国交省の地図画像を表示する
の続きです
WMS の Capabilities
WMSサーバで配信しているレイヤ(地図画像のデータセット)の一覧をXML形式で記述したもの
国交省のCapabilities機能の説明
http://nlftp.mlit.go.jp/webmapc/help.html#N3-1
osmdroid-wms の WMSParser
Capabilities を解析するXMLパーサー
HtpURLConnection c = (HttpURLConnection) new URL(Capabilitiesのurl).openConnection();
InputStream is = c.getInputStream();
WMSEndpoint endpoint = WMSParser.parse(is);
// レイヤの一覧
List<WMSLayer> list = endpoint.getLayers();
レイヤの一覧をListView に表示する。
2000件くらいある。
レイヤ名の一覧が表示されるが、中身が推測できない。
下記から、レイヤ名と名称の対応表を作成する。
国交省の地図レイヤ定義一覧
http://nlftp.mlit.go.jp/webmapc/LayerList.html
Python の BeautifulSoup を使用した。
ソースコードはこちら。
https://github.com/ohwada/Android_Samples/blob/master/tools/python/parse_milt_layer_list.py
作成した対応表の例
800件くらいある。
N03-180101_100, H29_都道府県界
N02-17_100, H29_鉄道
勘案すると、中身が推測できない状態で、1000件ほど公開されていることになります。
勿体ないな。
Capabilitiesの解析結果と合わせてListView に表示する。
レイヤ名が決まれば、前回の記事と同様にして、地図画像を表示します。
スクリーンショット
国交省の鉄道を表示する。
github にサンプルコードを公開した
https://github.com/ohwada/Android_Samples/tree/master/Osmdroidwms2