地図上にはさまざまなマーカーがあります。マーカーをクリックすると、ユーザーは拡大表示され、そのマーカーが詳細を表示する位置に集中し、mapTypeIdも地形から衛星に変化します。google map api複数のマーカーのいずれかをクリックしてズームイン/ズームアウトする方法
マーカーを再度クリックしてズームアウトし、地図を中央に置き、mapTypeIdを地形に戻すことができるようにしたいと考えています。
マップの初期化はここにある:
var map = new google.maps.Map(document.getElementById('map-canvas'), {
scrollwheel: false,
navigationControl: false,
mapTypeControl: false,
zoom: 11,
center: new google.maps.LatLng(-37.6756817,145.6690691),
mapTypeId: 'terrain'
});
var mapzoom = map.getZoom();
私たちは、このような町の配列を設定します。
var locations = [
// Healesville
['Town: <a href="#">Healesville</a>', -37.6534206,145.5117927, 'uploaded-images/marker-red-32h.png',0],
// Warburton
['Town: <a href="#">Warburton</a>', -37.7514003,145.6919378, 'uploaded-images/marker-red-32h.png',1],
[...],
[...],
[...]
];
インをズームインする最初のアクションのコードはここにある:
var markerListener = google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
map.panTo(this.getPosition());
map.setZoom(16);
map.setMapTypeId('satellite');
}
})(marker, i));
2番目の部分はズームアウトすると開始しました。
google.maps.event.addListener(map, 'zoom_changed', function() {
var zoomLevel = map.getZoom();
google.maps.event.addListener(marker, 'click', (function(marker, i) {
if(zoomLevel > 11) {
return function() {
var center = new google.maps.LatLng(-37.6756817,145.6690691);
map.setCenter(center);
map.setZoom(11);
map.setMapTypeId('terrain');
}
} else {
return function() {
map.panTo(this.getPosition());
map.setZoom(16);
map.setMapTypeId('satellite');
}
}
})(marker, i));
}
残念ながら、ズームアウトスクリプトは、マーカーの配列の最後のマーカーでのみ機能しました。マップ上の各マーカーの元の設定にズームアウトする方法を検討する必要があります。
マップにマーカーをどのようにロードしますか? – geocodezip
マップzoom_changedリスナーに構文エラーがあります(欠落している ")")。 – geocodezip