[Getcoder].geocode( オプション設定の配列 , コールバック関数 )geocodeメソッドは、第1引数に必要な設定情報をまとめた配列を、第2引数に処理完了時に呼び出されるコールバック関数をそれぞれ渡します。geocodeは、JavaScriptのAjax通信によりGoogleサーバーに呼び出しをかけ、結果を取得します。このため、検索結果はコールバック関数によって処理する必要があります。
function( 結果 , ステータス ){ ……実行する処理…… }このような形で定義します。引数は2つ渡され、第1引数には検索結果のオブジェクトが、第2引数には検索時のステータスを示す値が渡されます。第2引数の値が、google.maps.GeocoderStatus.OKであれば、正常に検索が行えたことを示します。※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=utf8">
<title>Sample Page</title>
<script type="text/javascript"
src="http://maps.google.com/maps/api/js?sensor=false&language=ja"></script>
<script type="text/javascript">
<!--
var map = null;
var geocoder = null;
function init(){
geocoder = new google.maps.Geocoder();
var element = document.getElementById("map");
var latlng = new google.maps.LatLng(35.682956,139.766092);
var options = {
zoom: 15,
center: latlng,
mapTypeId: google.maps.MapTypeId.SATELLITE,
};
map = new google.maps.Map(element,options);
}
function doFind(){
var input = document.getElementById("address");
var options = {
address: input.value,
language: 'ja',
region: 'jp'
};
var func = function(results,status){
if (status == google.maps.GeocoderStatus.OK){
var p = results[0].geometry.location;
map.setCenter(p);
var opts = {
position: p,
map: map,
title: results[0].formatted_address
};
var marker = new google.maps.Marker(opts);
var infoopt = {
content: results[0].formatted_address
};
var info = new google.maps.InfoWindow(infoopt);
info.open(map,marker);
}
};
geocoder.geocode(options,func);
}
//-->
</script>
</head>
<body onload="init();">
<h1>Map Sample</h1>
<input type="text" id="address">
<input type="button" value="検索" onclick="doFind();">
<div id="map" style="width:400px; height:400px;"></div>
</body>
</html>
| << 前へ |