名称/場所から詳細な位置情報を検索する

説明

名称/場所から詳細な位置情報を検索するにはGClientGeocoder()を使います。作成したジオコーディングオブジェクトのgetLocations()で名称と検索終了時の処理を指定します。続きは書籍で、どうぞ...
逆引きGoogle Maps APIリファレンス  詳しい解説などは逆引きGoogle Maps APIリファレンス、またはGoogle Maps APIリファレンスを参照してください。

サンプルコード [実行]

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Sample</title>
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAAasAJryKxWJnBFVJa487d9hTHGAxTVT7IRADYa-JdYz7xQ8IQZBSthgDZdggYpQHsmm6WYtHstQFfLA" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
window.onload = function() {
map = new GMap2(document.getElementById("gmap"));
map.setCenter(new GLatLng(36, 138), 6);
map.addControl(new GLargeMapControl());
gGeo = new GClientGeocoder();
}
function searchPoint() {
document.getElementById("result").innerHTML = "検索中です...";
var address = document.getElementById("geoName").value;
gGeo.getLocations(address, checkGeo);
}
function checkGeo(responseData) {
if (responseData.Status.code != 200 ) {
document.getElementById("result").innerHTML = "見つかりませんでした";
return;
}
var txt = "";
for (var i=0; i<responseData.Placemark.length; i++) {
txt += "場所:"+responseData.Placemark[i].address + "<br>";
txt += "国名:"+responseData.Placemark[i].AddressDetails.Country.CountryNameCode + "<br>";
}
document.getElementById("result").innerHTML = txt;
}
//]]>
</script>
</head>
<body>
<div id="gmap" style="width: 500px; height: 400px"></div>
<form>
<input type="text" value="golden gate bridge" id="geoName" size="50" /><br>
<input type="button" value="検索" onClick="searchPoint()" />
</form>
<div id="result"></div>
</body>
</html>