2017-02-11 3 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() 기능을 삭제하는 것이 좋습니다. 대신 청취자를

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 –

관련 문제