2010-12-17 64 views
1

我在地图上显示KML覆盖图:检测在Google地图上点击KML区域

var k1 = new GGeoXml(url); map.addOverlay(k1);

我想要检测该区域何时被点击。这是行不通的:

GEvent.addListener(k1,'click',function(){alert('click'k1');});

任何想法?

回答

0

我假设您使用的是V2 Maps API。

通过文档检查,GGeoXml类不会引发'click'事件,并且它实现的接口GOverlay也不会公开该事件。所以,尽管你在理论上对该事件有约束力,但它永远不会被触发。

您将监听器绑定到不存在的事件 - GOverlay不会引发任何事件。

快速查看时,只有GMap2引发鼠标事件(也许还有其他类)。您是否尝试过向此添加侦听器,然后在事件触发时检查源对象?

var k1 = new GGeoXml(url); 
    map.addOverlay(k1); 
    GEvent.addListener(map, 'click', callback); 

    function (overlay, latlng) callback 
    { 
    if (overlay == k1) alert('you clicked on k1'); 
    } 

(见EventListener docs

的谷歌地图API是不是很灵活;请记住,KML叠加层的灵活性更差,您在点击叠加层时想要做什么?