Google Maps API v3 - Комбинация событий мыши и щелчка

Если у меня есть событие click, подключенное к моей карте, а затем я подключаю событие mousemove, событие click больше не работает. Не думаю, что кто-нибудь об этом знает? Кстати, это в версии 3.4.

В качестве простого примера:

var map;
function initialize() {

    var myLatlng = new google.maps.LatLng(-34.397, 150.644);
    var myOptions = {
        zoom: 8,
        center: myLatlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    }

    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

    var secondClick = false;
    var firstClick = false;
    var firstClickLatLng;
    var secondClickLatLng;
    var lines = [];

    google.maps.event.addListener(map, 'mousemove', function (event) {
        redrawLine(event);
    });

    google.maps.event.addListener(map, 'click', function (event) {
        if (!firstClick && !secondClick) {
            firstClick = true;
            firstClickLatLng = event.latLng;
        }
        else if (firstClick && !secondClick) {
            secondClick = true;
            firstClick = false;
            // draw the polyline here
            secondClickLatLng = event.latLng;

            //google.maps.event.removeListener(listener);
        }
        else if (!firstClick && secondClick) {
            secondClick = false;
            // clear the polyline here
            alert("what");
            //google.maps.event.removeListener(listener);
        }
    });

    function redrawLine(event) {
        if (firstClickLatLng != null) {
            var lineCoords = [
                firstClickLatLng,
                event.latLng
            ];

            var line = new google.maps.Polyline({
                path: lineCoords,
                strokeColor: "#FF0000",
                strokeOpacity: 1.0,
                strokeWeight: 2
            });

            // You need to clear the previous line, otherwise
            // it draws loads and loads of lines.  I did this
            // in case it doesn't manage to clear the previous
            // one for some reason.
            for (var i = 0; i < lines.length; i++) {
                lines[i].setMap(null);
            }

            line.setMap(map);
            lines.push(line);
        }
    }
}

Итак, линия рисуется всякий раз, когда вы перемещаете мышь. Проблема в том, что если бы я щелкнул второй раз, событие щелчка не сработает.

Идеи?

РЕДАКТИРОВАТЬ

Эта проблема связана: http: // www.google-maps-js-api-v3@googlegroups.com /msg15878.html

Это явно не решает мою проблему, но другие уже тестировали и испытали это.

5
задан jeff 5 August 2012 в 07:01
поделиться