地図中央の座標と地図の倍率を表示します。
地図を動かすと下部の「緯度・経度・倍率」の数値が変化します。
地図が移動した場合に発生する「bounds_changed」イベントで、センター座標と表示倍率をgetCenter()とgetZoom()で取得、あらかじめHTML側に用意したidにを出力する。
デモではspanに出力する方法とinputに出力する方法の両方を書いてある。不要な表示を消したい場合、HTMLタグ側だけ消すとエラーとなるのでJavascript側も一緒に消すか、cssの「visibility:hidden;」か「display:none;」で非表示にする事。
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Google Maps API v3 - 緯度・経度・倍率を表示</title>
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<style>
#mapdiv { height:400px; width:100%}
</style>
</head>
<body>
<div id="mapdiv"></div>
<ul>
<li>緯度<input type="text" id="lat_input" /> <span id="lat_span"></span></li>
<li>経度<input type="text" id="lng_input" /> <span id="lng_span"></span></li>
<li>倍率<input type="text" id="zoom_input" /> <span id="zoom_span"></span></li>
</ul>
<script type="text/javascript">
var gmap;
function initMap() {
gmap = new google.maps.Map(document.getElementById('mapdiv'), {
center: {lat: 34.649394, lng: 135.001478},
zoom: 17
});
//ターゲットスコープ処理
var tgt_image = {
url: 'gmap_cross.gif',
size: new google.maps.Size(32, 32),
origin: new google.maps.Point(0, 0),
anchor: new google.maps.Point(16, 16)
};
var tgt_marker = new google.maps.Marker({
position: {lat: 34.649394, lng: 135.001478},
map: gmap,
icon: tgt_image,
clickable: false, /* クリック不可 */
zIndex: 0
});
tgt_marker.setMap(gmap);
//地図の表示内容が変更されたら
google.maps.event.addListener( gmap ,'bounds_changed',function(){
//緯度と経度を取得
var pos = gmap.getCenter();
var latlng = new google.maps.LatLng( pos.lat(), pos.lng() );
var lat = latlng.lat();
var lng = latlng.lng();
//spanに出力
document.getElementById('lat_span').innerHTML = lat;
document.getElementById('lng_span').innerHTML = lng;
//inputに出力
document.getElementById('lat_input').value = lat;
document.getElementById('lng_input').value = lng;
//現在の表示倍率を取得
var zoom=gmap.getZoom();
//spanに出力
document.getElementById('zoom_span').innerHTML = zoom;
//inputに出力
document.getElementById('zoom_input').value = zoom;
//ターゲットスコープ移動
tgt_marker.setPosition(pos);
});
}
</script>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=【あなたのAPIキー】&callback=initMap">
</script>
</body>
</html>