2013-01-16 195 views
1

我正在使用google maps api。我希望有兩個鼠標事件可以一次觸發。以下是代碼片段。多個鼠標事件不會觸發

function initialize() { 
var myLatlng = new google.maps.LatLng(37.4419, -122.1419); 
var myOptions = { 
    zoom: 13, 
    center: myLatlng, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
} 
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 

    var polyOptions = { 
     strokeColor: '#000000', 
     strokeOpacity: 1.0, 
     strokeWeight: 3 } 
    poly = new google.maps.Polyline(polyOptions); 
    poly.setMap(map); 
    // Add a listener for the click event 
    google.maps.event.addListener(map, 'click', addLatLng); 
} 

function addLatLng(event) { 
var path = poly.getPath(); 

if(!draw) 
{ 
    path.push(event.latLng); 
    path.push(event.latLng); 
    draw = true; 
// Add a new marker at the new plotted point on the polyline. 

    var marker = new google.maps.Marker({ 
      position: event.latLng, 
      title: '#' + path.getLength(), 
      map: map }); 
    google.maps.event.addListener(map, 'mousemove', moveTrackLine); 
} 
else 
{ 
     path.push(event.latLng); 
     var marker = new google.maps.Marker({ 
                position: event.latLng, 
                title: '#' + path.getLength(), 
                map: map }); 
     draw = false; 
} 
} 

function moveTrackLine(event) { 

var path = poly.getPath(); 
// replace the old point with a new one to update the track 
path.pop(); 
path.push(event.latLng); 
} 

當我第一次在地圖上點擊地圖時點擊地圖。然後,當鼠標移動時,我看到多段線更新並正確地跟隨我的光標。接下來,如果我點擊地圖,我看不到放置在地圖上的標記,也不會進入addLatLng函數。預先感謝您的幫助和時間。 -tim

回答

0

設置clickable - 選擇折線爲false。

問題:只要將鼠標移動事件應用於地圖,就不能再點擊地圖,因爲在鼠標指針下方總是折線。

當您將折線的可點擊選項設置爲false時,折線不響應鼠標事件,並且點擊事件將傳遞給地圖。