このイベントは見えている範囲のタイル(地図)が
読み込まれたタイミングで発生します。
なので、ズームしたり地図を移動したりすると、
bounds_changed -> tilesloaded
と表示されると思います。
また、ゆっくりと地図を移動すると、
bounds_changed だけ表示されると思います。
これはゆっくりと地図を移動している間に、
google mapは地図の少し外側の見えない部分のデータも受信するため、
tilesloaded イベントは発生しない状態になります。
そのためbounds_changed だけが表示された状態になります。
以下、サンプルコードです。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8" />
<title> google maps api v3</title>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"> </script>
<script type="text/javascript">
google.maps.event.addDomListener(window, "load", function () {
var map = document.getElementById("map_canvas");
var latlng = new google.maps.LatLng(35.658580, 139.745433);
var mapOptions = {
zoom: 18,
center: latlng
};
var gmap = new google.maps.Map(map, mapOptions);
var note = document.getElementById("note");
google.maps.event.addListener(gmap, "bounds_changed", function () {
note.innerText = "bounds_changed";
});
google.maps.event.addListener(gmap, "tilesloaded", function () {
note.innerText = "tilesloaded";
});
});
</script>
</head>
<body>
<div id="map_canvas" style="width: 400px; height: 400px"> </div>
<p id="note" style="padding: 10px; background-color:#f50; color: #fff;">
</p>
</body>
</html>
0 件のコメント:
コメントを投稿