谷歌地图API v3事件

时间:2013-05-08 19:38:52

标签: google-maps-api-3 maps

我有以下情况:

地图上会添加折线,当用户点击它时,状态会变为可编辑状态。此外,我有一个事件,如果用户点击折线的最后一个椎骨并开始移动鼠标,以便能够使用用户正在绘制的鼠标路径延伸折线。

然而,似乎当我有一个事件并且在这个事件中我尝试添加另一个它根本不起作用而且我不知道为什么。

为了防止事情变得简单,我将粘贴我的代码的一部分。

google.maps.event.addListener(polyLine, "mousedown", function(event){
               if(polyLine.getEditable() === true) 
               {
                   if(typeof event.vertex !== "undefined") 
                   {    
                        if(event.vertex === polyLine.getPath().getLength() - 1) 
                        {
                            polyLine.setEditable(false);

                                if(mouseMoveDrawingEvent === null)
                                {
                                    map.setOptions({draggable:false});
                                    polyLine.setOptions({clickable:false});
                                    mouseMoveDrawingEvent = google.maps.event.addListener(map, "mousemove", function(event) 
                                    {
                                        alert("1"); // <== this never fires
                                        polyLine.getPath().push(event.latLng);
                                        drawingLabel.setPoint(event.latLng);
                                        drawingLabel.setContents("<div style='background-color:white'>" + (google.maps.geometry.spherical.computeLength(polyLine.getPath()) / 1000).toFixed(2) + " км.</div>");
                                    });
                                }    

                            map.getDiv().onmouseup = function(ev) {
                                polyLine.setOptions({clickable:true});
                                map.getDiv().onmousedown = null;
                                map.getDiv().onmouseup = null;
                                google.maps.event.removeListener(mouseMoveDrawingEvent);
                                mouseMoveDrawingEvent = null;
                            };
                        }
                   }
               }
           });

.....

thre是另一个侦听'mouseup'的事件......

你们有没有想过如何使这种代码和平有效。

1 个答案:

答案 0 :(得分:0)

我找到了解决问题的方法。

问题在于,当我设置折线{clickable:false}时,api会删除该事件(显然它内部的每一个都是:)