Javascript google map api如何通过单击几个标记之一来放大和缩小
在地图上我有各种各样的标记。单击标记后,用户会放大并居中显示标记的详细信息,mapTypeId也会随着地形和卫星的变化而变化 我希望用户能够再次单击标记以缩小、居中地图并将mapTypeId更改回terrain 地图初始化如下所示:Javascript google map api如何通过单击几个标记之一来放大和缩小,javascript,google-maps,google-maps-api-3,google-maps-markers,Javascript,Google Maps,Google Maps Api 3,Google Maps Markers,在地图上我有各种各样的标记。单击标记后,用户会放大并居中显示标记的详细信息,mapTypeId也会随着地形和卫星的变化而变化 我希望用户能够再次单击标记以缩小、居中地图并将mapTypeId更改回terrain 地图初始化如下所示: var map = new google.maps.Map(document.getElementById('map-canvas'), { scrollwheel: false, navigationControl: false, mapT
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 markerListener = google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
map.panTo(this.getPosition());
map.setZoom(16);
map.setMapTypeId('satellite');
}
})(marker, i));
我们设置了一系列这样的城镇:
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],
[...],
[...],
[...]
];
我开始了第二部分的缩小:
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));
}
不幸的是,缩小脚本只对标记数组中的最后一个标记起作用。需要了解如何缩小到地图上每个标记的原始设置。在缩放处理代码中,您只有对最后一个标记的引用(它在循环的最后一次被设置为最后一个值)。只需将代码添加到marker click函数中就更简单了。我想你想要的是:
var markerListener = google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
zoomLevel = map.getZoom();
if (zoomLevel <= 11) {
map.panTo(this.getPosition());
map.setZoom(16);
map.setMapTypeId('satellite');
} else {
var center = new google.maps.LatLng(-37.6756817, 145.6690691);
map.setCenter(center);
map.setZoom(11);
map.setMapTypeId('terrain');
}
}})(marker, i));
}
如何在地图上加载标记?地图缩放中出现语法错误(“更改的侦听器(缺少结尾”))”。胜利。非常感谢。