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

Ich weiß nicht, warum es nicht zoomt, wenn Sie auf den Marker klicken. Oder gibt es eine andere Funktion kann ich verwenden, um dies zu tun, weil alles mit diesem Code gut läuft, außer dieses ProblemWie kann ich den Marker vergrößern, wenn er angeklickt wird?

+1

Sie haben nicht gezeigt, wie Sie Ihre Karte erstellen. Sie haben gerade die Komponenten angezeigt, die Sie geschrieben haben, um eine Karte zu erstellen. –

Antwort

0

Der Code, den Sie zur Verfügung gestellt ist nicht vollständig. Also kann ich nur raten.

ich glaube, das Hauptproblem ist, wenn der Hörer hinzuzufügen:

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

ich das Timing erraten Sie laufen zoom() nicht richtig. Sie sollten den Listener hinzufügen, wenn der Marker erstellt wird (oder bevor jemand auf diese Marker klickt). Wenn Sie jeden Marker mit addMarkerWithTimeout() hinzufügen, empfehle ich, die Funktion zoom() zu entfernen. Und fügen Sie den Hörer in addMarkerWithTimeout() statt:

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

es funktioniert perfekt dank viel @ Koala Yeung –

Verwandte Themen