[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>
<< 前へ |