2017-02-11 90 views
0
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) { 
    marker.push(new google.maps.Marker({ 
     position: position, 
     map: map, 
     animation: google.maps.Animation.DROP 
    })) 
}; 
function zoom(){ 
for (var i = 0; i < marker.length; i++){ 
    marker[i].addListener('click',function(){ 
     map.setZoom(15); 
    }) 
} 
} 
function clearMarker() { 
    for (var i = 0; i < marker.length; i++) { 
     marker[i].setMap(null); 
    } 
    marker = []; 
}; 

我不知道爲什麼點擊標記時它沒有放大。 或者是否有任何其他功能可以用來使這種情況發生,因爲除了這個問題,這個代碼除了這個問題外,每件事情都很順利如何在標記點擊時放大標記?

+1

您沒有顯示如何構建您的地圖。你剛剛展示了你爲構建地圖而寫的對手。 –

回答

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 = []; 
}; 
+0

非常感謝@Koala Yeung –

相關問題