Google maps api 3 谷歌地图API v3-鼠标移动并单击事件组合

Google maps api 3 谷歌地图API v3-鼠标移动并单击事件组合,google-maps-api-3,Google Maps Api 3,如果我将一个点击事件连接到我的地图,然后我连接了一个mousemove事件,点击事件将不再工作。我想没人知道这件事吧?顺便说一下,这是3.4版 举个简单的例子: var映射; 函数初始化(){ var mylatng=new google.maps.LatLng(-34.397150.644); 变量myOptions={ 缩放:8, 中心:myLatlng, mapTypeId:google.maps.mapTypeId.ROADMAP } map=new google.maps.map(do

如果我将一个点击事件连接到我的地图,然后我连接了一个mousemove事件,点击事件将不再工作。我想没人知道这件事吧?顺便说一下,这是3.4版

举个简单的例子:

var映射;
函数初始化(){
var mylatng=new google.maps.LatLng(-34.397150.644);
变量myOptions={
缩放:8,
中心: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二次拉通;
var行=[];
google.maps.event.addListener(映射,'mousemove',函数(事件){
重绘线(事件);
});
google.maps.event.addListener(映射,'click',函数(事件){
如果(!firstClick&!secondClick){
firstClick=true;
第一次单击latLng=event.latLng;
}
else if(第一次单击&!第二次单击){
secondClick=true;
firstClick=false;
//在这里绘制多段线
第二次单击latLng=event.latLng;
//google.maps.event.RemovelListener(监听器);
}
如果(!firstClick&&secondClick){
secondClick=false;
//清除此处的多段线
警惕(“什么”);
//google.maps.event.RemovelListener(监听器);
}
});
函数重绘线(事件){
if(firstClickLatLng!=null){
变量lineCoords=[
首先单击LATLNG,
event.latLng
];
var line=新的google.maps.Polyline({
路径:lineCoords,
strokeColor:#FF0000“,
笔划不透明度:1.0,
冲程重量:2
});
//您需要清除前一行,否则
//它画了很多很多线,是我做的
//以防它无法清除以前的错误
//出于某种原因。
对于(变量i=0;i
因此,无论何时移动鼠标,都会绘制一条线。问题是,如果我第二次单击,单击事件将不会触发

想法

编辑

这一问题涉及:


虽然它并没有明确地解决我的问题,但其他人已经对此进行了测试和体验。

如该链接所示,您需要声明clickable:false

google.maps.event.addListener(poly,“mousemove”,函数(e){
var#ToolTipolys=$(“#ToolTipolys”);
如果(_tooltipPolys.length==0){
_ToolTipolys=$('\
\
\
\
\
');
$(“正文”)。附加(\u ToolTipolys);
$(“div.tooltip-internal”,_tooltipPolys).text(此.title);
_ToolTipolys.css({
“不透明度”:“.9”,
“位置”:“绝对”
});
}
var pageX=event.pageX;
var pageY=event.pageY;
如果(pageX==未定义){
pageX=event.clientX+document.body.scrollLeft+document.documentElement.scrollLeft;
pageY=event.clientY+document.body.scrollTop+document.documentElement.scrollTop;
}

此外,您还需要为第二次单击后要保留的段添加一个条件:if(firstClickLatLng!=null&&secondClickLatLng==null){我知道我迟到了,但我对这个线程感兴趣,为什么不在onmousemove侦听器之外为每个段设置映射?
    google.maps.event.addListener(poly,"mousemove",function(e){

        var _tooltipPolys = $("#tooltipPolys");
        if(_tooltipPolys.length == 0) {
            _tooltipPolys = $(' \
                <div id="tooltipPolys" class="tooltip top" role="tooltip"> \
                    <div class="tooltip-arrow"></div> \
                    <div class="tooltip-inner"></div> \
                </div> \
            ');
            $("body").append(_tooltipPolys);
            $("div.tooltip-inner", _tooltipPolys).text(this.title);
            _tooltipPolys.css({
                "opacity": ".9",
                "position":"absolute"
            });
        }

        var pageX = event.pageX;
        var pageY = event.pageY;
        if (pageX === undefined) {
            pageX = event.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
            pageY = event.clientY + document.body.scrollTop + document.documentElement.scrollTop;
        }