• 締切済み

Google Maps API v3で、住所がわかっているいるが緯度経

Google Maps API v3で、住所がわかっているいるが緯度経度が不明の場合のコーディングで困っています。 与えられた住所を引数にして地図を表示するというだけのものなのですがどうにも書き方がわかりません。 例えば、あるレストランの一覧表があり、そこに記載されている住所をクリックすると別ページを呼び出して地図を表示させるというものです。 Google Maps API V2の場合はわかるのですが… 多少言葉足らずですがどなたかご教示いただければ幸いです。 よろしくお願いいたします。

みんなの回答

回答No.1

住所から緯度経度を得るには、google.maps.Geocoderを利用すればできそうです。 得られた緯度経度を元に、setCenterすればいいのではないでしょうか? var geocoder = function(address,callback){ var geocoder = new google.maps.Geocoder(); if (geocoder) { geocoder.geocode({'address': address}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { if (callback)callback(results[0].geometry.location); } }); } }; #使い方例 geocoder("秋田市",function(location){ // mapは、google.maps.Mapのオブジェクト map.setCenter(location); });

ichigolife
質問者

お礼

早速ご教示いただきありがとうございました。 上記の方法でも試してみたのですがどうしてもうまくできなかったため、最終的には以下のようにしてみました。 HHTMLファイル <body onload="hogehoge('東京スカイツリー')"> <div id="map_canvas" style="width:100%;height:100%"></div> </body> 外部javaScriptファイル function hogehoge(getAdd) { var map = null; var geocoder = null; var geocoder = new google.maps.Geocoder(); geocoder.geocode({ 'address': getAdd}, function(results, status) { var map = new google.maps.Map(document.getElementById("map_canvas")); map.setCenter(results[0].geometry.location); map.setZoom(18); map.setMapTypeId(google.maps.MapTypeId.ROADMAP); var marker = new google.maps.Marker({ position: results[0].geometry.location, map: map }); }); } とりあえずIEとFirefoxで無事に動いているのですが、もし文法的なことなど間違いがありましたらご指摘いただければ幸いです。 ご回答ありがとうございました。

関連するQ&A