ASP.NETサンプルアプリでは、geocode.usを使って、アメリカの州を検索しているが、ここは日本人らしく(?)、国土数値情報を背景にして、日本の住所で検索・表示してみたい。
ということで、www.geocoding.jpのWebAPIに接続してみると、案外さくっといっちゃいました。
(座標変換とか、面倒なことがあるんじゃないかと想像していた)
例によって、サンプルの改造という手段でお勉強しているわけであるが、このサンプルアプリ、本当に素晴らしい教材である。
■サンプルの構成
findaddresstask.aspx 検索条件指定画面
findaddress.aspx 検索処理、検索結果一覧表示画面
findaddressfunctions.aspx geocodingサイトへPOSTと結果(UTF-8、XML)の整形
findaddresstask.aspx→findaddress.aspxにPOST
・geocodingサイトの変更
GeocodeAddress requestGeocodeAddress(String address)内
//String urlString = "http://geocoder.us/service/rest/geocode?address=" + Server.UrlEncode(address);
を
String urlString = "http://www.geocoding.jp/api/?v=1.1&q=" + Server.UrlEncode(address);
に書き換える。
・XMLのタグ変更
GETのレスポンスの結果XMLが当然異なるので、取得するタグの名前を変える。
//座標値の取得
addr.lon = doc.GetElementsByTagName("lng").Item(0).FirstChild.Value;
addr.lat = doc.GetElementsByTagName("lat").Item(0).FirstChild.Value;
//住所の取得
//address = doc.GetElementsByTagName("address").Item(0).FirstChild.Value;
address = doc.GetElementsByTagName("google_maps").Item(0).FirstChild.Value;