2012-09-03 210 views
3

在一个普通的谷歌地图,我可以获取和使用下面的代码显示我的mousepoint的地理坐标:获取鼠标与鼠标移动的坐标上的路线

google.maps.event.addListener(map, "mousemove", function(event) { 
    document.getElementById('message').innerHTML = 
    'Geographical Coordinates: ' + event.latLng.lat() + ', ' + event.latLng.lng(); 
}); 

如果我计算使用谷歌的方向API的路线和将鼠标移动到显示的路线上,“mousemove”事件不会被触发。当鼠标指针位于路径上时,如何获得坐标?

我有一个运行示例​​3210。当你用鼠标跟随路线时,坐标不会更新。

+1

可以张贴一些代码,尝试jsfiddle.net – kzhen

+0

我在由一个小例子[jsfiddle.net] (http://jsfiddle.net/BYBK8/1/) – gianclaudio

回答

0

我知道将一个mouseover事件添加到路由本身的唯一方法是绘制多段线(以便您可以访问它),然后向它添加一个mouseover事件。

Example

+0

对不起,我没有在我的例子中包含渲染选项'draggable:true'。使用'suppressPolylines:true'选项,路线不会被拖动。 – gianclaudio

+0

我不认为你将能够获得鼠标悬停和可拖动方向上的鼠标坐标。 – geocodezip

1

这是一个例子,在光标位置移动引导的工具提示:

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; 
     } 

     // Update the current tooltip position each time the cursor moves 
     _tooltipPolys.css({ 
      "top":(pageY - _tooltipPolys.height() - 10)+"px", 
      "left":(pageX - (_tooltipPolys.width()/2))+"px" 
     }); 
    });