住所から座標を取得する
Google Maps APIでは地名や住所などから緯度と経度を調べることが出来ます。
ジオコーディング機能を利用するためにはGClientGeocoderクラスのオブジェクトを作成します。

GClientGeocoder(cache?:GGeocodeCache)
引数には、キャッシュを指定する事が出来ます。
何も指定していない場合は、GFactualGeocodeCache が使用されます。
指定した住所から座標を取得するにはGClientGeocoderクラスで用意されているgetLatLngメソッドを使います。

getLatLng(address:String, callback:function)
1番目の引数に座標を調べたい住所を文字列で指定します。
2番目の引数には、サーバからレスポンスが返ってきたときに呼び出すコールバック関数を指定します。
コールバック関数が呼び出される時にGLatLngクラスのオブジェクトが引数として渡されてきます。
GLatLngオブジェクトには住所から座標に変換できた場合はその座標が格納され、変換できなかった場合はnullが格納されています。
以下、ソースです。

    <script type="text/javascript">
    <!--
    var geocoder;

    function init() {
      if (GBrowserIsCompatible()) {
        geocoder = new GClientGeocoder();
      }
    }

    function moveAddress() {
      var address = document.getElementById("address").value;
      geocoder.getLatLng(address, moveTo);
    }

    function moveTo(latlng) {
      if (latlng){
        alert("座標:" + latlng);
      }else{
        alert("座標を取得できません。");
      }
    }
    //-->
    </script>
  </head>
  <body onload="init()" onunload="GUnload()">
    <form>
    <p>
    <input type="text" id="address" size="30" value="" />
    <input type="button" id="addressbtn" value="座標取得" onclick="moveAddress()" />
    </p>
    </form>

    <div id="map_canvas" style="width: 400px; height: 400px"></div>
  </body>
</html>
以下、実行例です。

Back to top

Information