APIキーが不要になって、作る側としては大変便利になった。
今回もサイトに組み込むが久しぶりなので、ゼロからつくってみる。
利用するのは、Maps JavaScript API。
現行の最新バージョンは V3。
チュートリアルに従って作業をするも、2つ物足りない。
1、緯度・経度ではなく、住所から地図を表示したい。
たしかに以前作っていたときも、DBに緯度・経度入れてたような・・・。
住所から表示する方法ないか検索したら、これなら出来そうというものが。
同じAPIをつかって住所から緯度・経度を取得し、その後地図を表示。
こちらを参考にさせていただきました。
2、マーカーを表示したい。
これは大きな問題ではないのだけど。
以上をふまえて、こんな感じで動作確認が取れた。
最初にAPIを読み込み
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
次に、bodyタグにonloadを書きたくなかったので、
$(function(){
showMap();
});
とした。
最後に
function showMap(){
var geo = new google.maps.Geocoder();
geo.geocode(
{
'address': '東京都中央区日本橋1丁目'
},
function(result, status) {
if (status == google.maps.GeocoderStatus.OK) {
// alert('取得成功');
// alert('経度;' + result[0].geometry.location.lng());
// alert('緯度;' + result[0].geometry.location.lat());
var lng = result[0].geometry.location.lng();
var lat = result[0].geometry.location.lat();
var latlng = new google.maps.LatLng(lat,lng);
var myOptions = {
zoom: 15,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
//マーカーの表示
var marker = new google.maps.Marker({
map: map,
position: map.getCenter()
});
}else{
// alert('取得失敗');
}
}
);
}
として、
<div id="map_canvas" style="width: 500px; height: 500px"></div>
で実際に地図を表示する場所を用意。
これで動くのだけど、HTMLにjavascriptのコードを極力書きたくないので、外部ファイルにする予定。
追記
上記の書き方はjQuery必須のこと。