トップページ >  Google Maps >  住所から複数の座標を取得する
初版2009/10/21: 最終更新日2009/10/21
住所から複数の座標を取得する
目次
住所から複数の座標を取得する
サンプルソース
実行例
住所から複数の座標を取得する
getLatLngメソッドでは引数に指定した住所から一つの候補を返しましたが、指定した住所によっては複数の候補が見つかる場合があります。 ここでは候補の一覧を全て取得する方法を確認します。 指定した住所から候補の一覧を取得するにはGClientGeocoderクラスで用意されているgetLocationsメソッドを使います。
getLocations(query:String|GLatLng, callback:function)
1番目の引数に座標を調べたい住所を文字列で指定して下さい サーバからの応答には時間がかかる場合がありますので、2番目の引数にコールバック関数を指定します。 コールバック関数には複数の候補地に関する情報が含まれるオブジェクトが引数として渡されてきます。
サンプルソース
    <script type="text/javascript">
<!--
var map;
var geocoder;

function initialize() {
  if (GBrowserIsCompatible()) {
    map = new GMap2(document.getElementById("map_canvas"));
    map.setCenter(new GLatLng(36.004673,137.351074), 5);

    geocoder = new GClientGeocoder();
  }
}

function getAddress() {
  var address = document.getElementById("address").value;
  geocoder.getLocations(address, markAddress);
}

function markAddress(obj) {
  if (obj.Status.code == G_GEO_SUCCESS){
    var names = check(obj, "");
    alert(names);
  }
}

function check(obj, str){
  var names = "";
  for (var name in obj){
    if (typeof obj[name] == "object"){
      names += check(obj[name], str + name + ".") + "\n";
    }else{
      names += str + name + "=" + obj[name] + "\n";
    }
  }
  return names;
}
//-->
    </script>
  </head>
  <body onload="initialize()" onunload="GUnload()">
    <div id="map_canvas" style="width: 400px; height: 400px"></div>

    <form>
    <p>
    <input type="text" id="address" size="30" value="住所を入力" />
    <input type="button" id="addressbtn" value="座標取得" onclick="getAddress()" />
    </p>
    </form>

  </body>
</html>
実行例
以下、実行例です。