如何在Google地图PolyLine叠加层上检测点击事件?

Tom*_*Tom 5 javascript google-maps

在我看来,我应该能够执行以下操作来检测谷歌地图上一行上的点击事件:

var line = new GPolyline( ... );
map.addOverlay(line);
GEvent.addListener(line, "click", function(latlng){ alert("clicked"); });
Run Code Online (Sandbox Code Playgroud)

API参考说这是在2.88版本中,这是在2007年(!?)发布可用,所以我假定这就是我使用的是什么,但我不知道如何来确认.

我也尝试{clickable:true}明确设置选项(它应该是默认选项.)我已经在FireFox 3和Opera 9.6中测试过,所以怀疑它是否与浏览器有关.我也在页面上使用jQuery.

我有足够的代码检测标记上的点击工作正常,点击线条会非常好,任何人都可以开导我吗?

Ben*_*ird 6

更新:在API的第3版中,您要使用 google.maps.event.addListener(object, event, function);

例如

google.maps.event.addListener(polyline, 'click', function() {
    alert('you clicked polyline');
    });
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参阅事件api


how*_*rdr 2

我刚刚做了一个快速测试,以下代码在我的测试页面上运行:

var polyline = new GPolyline([
  new GLatLng(37.4419, -122.1419),
  new GLatLng(37.4519, -122.1519)
], "#ff0000", 10);
map.addOverlay(polyline);

GEvent.addListener(polyline, 'click', function() {
    alert('you clicked polyline');
});
Run Code Online (Sandbox Code Playgroud)

判断您拥有的谷歌地图版本的方法是查看您拥有的谷歌地图 src url 的 v= 参数

http://maps.google.com/maps?file=api&v=2&key=MY_API_KEY

在本例中,我有“v=2”,这意味着我正在使用最新的稳定 2 版本,它支持可单击的折线(截至今天 2.101 是最新版本)。“v=2.x”表示您正在使用边缘版本。任何“v=2.5”,其中句点 (.) 后面的任何内容都是数字,表示特定版本