2017-02-11 4 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 –