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

関連する問題