Google maps Google Map API V3事件mousedown、mousemove和mouseup
我试图模仿谷歌地图中谷歌地球桌面版的绘制路径。我所做的是,当我尝试绘制路径时,我禁用了默认地图的可拖动事件,并附加了mousedown事件。在mousedown事件之后,mousemove事件被触发并相应地工作。当鼠标被释放时,释放事件被捕获在mouseup处理程序中,其中mousemove处理程序在mouseup事件侦听器中被移除。但是,在第二次mousedown和mouseup事件之后,此功能无法正常工作 我的代码是:Google maps Google Map API V3事件mousedown、mousemove和mouseup,google-maps,google-maps-api-3,Google Maps,Google Maps Api 3,我试图模仿谷歌地图中谷歌地球桌面版的绘制路径。我所做的是,当我尝试绘制路径时,我禁用了默认地图的可拖动事件,并附加了mousedown事件。在mousedown事件之后,mousemove事件被触发并相应地工作。当鼠标被释放时,释放事件被捕获在mouseup处理程序中,其中mousemove处理程序在mouseup事件侦听器中被移除。但是,在第二次mousedown和mouseup事件之后,此功能无法正常工作 我的代码是: var map = 'Already created map objec
var map = 'Already created map object';
var polyOptions = {
strokeColor: '#000000',
strokeOpacity: 1.0,
strokeWeight: 2,
map: map,
idx: 0
};
var mouseMoveHandler = null;
google.maps.event.addListener(map, 'mousedown', function(e) {
mouseMoveHandler = google.maps.event.addListener(map, 'mousemove', function(e) {
// Create a new polyline instance if it does not exists
if ("undefined" == typeof(GMap._poly[GMap._active_overlay])) {
GMap._poly[GMap._active_overlay] = new google.maps.Polyline(polyOptions);
}
var path = GMap._poly[GMap._active_overlay].getPath();
path.push(e.latLng);
}); // End of mousemove lister
return false;
});
google.maps.event.addListener(map, 'mouseup', function(e) {
google.maps.event.removeListener(mouseMoveHandler);
});
将此添加到polyOptions:
clickable:false
否则,多边形将侦听鼠标事件,而mouseup事件将在多边形上而不是在地图上触发。带有引导工具提示的示例:
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;
}
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;
}