如何在点击标记时放大标记?

时间:2017-02-11 02:09:33

标签: javascript google-maps events

File

我不知道为什么单击标记时没有放大。 或者我可以使用任何其他功能来实现这一点,因为除了这个问题,每个事情都适合这个代码

1 个答案:

答案 0 :(得分:0)

您提供的代码不完整。所以我只能猜测。

我认为关键问题是何时添加监听器:

marker[i].addListener('click',function(){
    map.setZoom(15);
})

我猜你运行zoom()的时机不对。您应该在创建标记时(或在某人点击这些标记之前)添加侦听器。

如果您使用addMarkerWithTimeout()添加每个标记,我建议删除函数zoom()。并在addMarkerWithTimeout()中添加听众:

var neighborhoods = [{lat: 29.988097, lng: 31.442075},];
var marker = [];
var map;
function myMap() {
    map = new google.maps.Map(document.getElementById('googleMap'), {
      zoom: 13,
      center: {lat: 30.024710, lng: 31.446871}
    });
}
function drop() {
    clearMarker();
    for (var i = 0; i < neighborhoods.length; i++) {
      addMarkerWithTimeout(neighborhoods[i], i * 200);  
    }
}
function addMarkerWithTimeout(position) {
    var singleMarker = new google.maps.Marker({
        position: position,
        map: map,
        animation: google.maps.Animation.DROP
    });
    singleMarker.addListener('click',function(){
        map.setZoom(15);
    })
    marker.push(singleMarker);
};
function clearMarker() {
    for (var i = 0; i < marker.length; i++) {
      marker[i].setMap(null);
    }
    marker = [];
};