1

我正在使用谷歌地图 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 函数。提前感谢您的帮助和时间。-蒂姆

4

1 回答 1

0

将折线的clickable-option 设置为 false。

问题:一旦将鼠标移动事件应用于地图,您将无法再单击地图,因为鼠标光标下方始终是折线。

当您将折线的可点击选项设置为 false 时,折线不会响应鼠标事件并且点击事件将被传递给地图。

于 2013-01-16T23:32:29.260 回答