GoogleMapsAPI に、待望の「逆ジオコーダー」(緯度経度から住所を求める機能)が追加されたらしいという記事をたまたま見つけたので、早速、出張JAWSで試してみました。
公式なリファレンスが見つけられなかったので、サンプルページのコードを解析してみました。
「GClientGeocoder」クラスの機能拡張によって実現されているようです。
<コード例>
(1) var geocoder = new GClientGeocoder(); (2) geocoder.getLocations(latlng, function(addresses) { (3) if(addresses.Status.code != 200) { // エラー処理 } else { |
<解説>
(1)ジオコーダークラスです。
(2)getLocationsメソッド
従来は、ジオコーダー(住所から緯度経度を求める機能)として利用されていましたが、今回、その反対の変換機能にも対応されたようです。
第一パラメータにGlatlng型のオブジェクトをセットすることで、逆ジオコードが機能するようです。
従来のジオコードでは、ここに住所文字列(String)をセットしていました。
第二パラメータは、コールバック関数です。
(3)エラー処理を書きましょう。
(4)住所情報を取得します。
戻り値のオブジェクト(ここではaddresses)から、このように取り出すようです。(詳細は不明)
(5)住所テキストを取得します。
このコードによって、「日本北海道札幌市中央区・・・」のような、国名で始まる住所テキストが取得できます。国名が不要なら、substringでカットしましょう。
<出張JAWS>
実際に「出張JAWS」の住所検索機能に使ってみたところ、非常に安定した動作が体感できました。
最近、少々不安定だった出張JAWSですが、少しは改善されたかと思います。