0

我有一个谷歌地球插件,其中包含从 kml 文件加载的数据。kml 包含多边形,当单击多边形时,会打开带有标签内容的气球。

如何将处理程序附加到气球的开口处,然后此处理程序将创建一个自定义气球并停止默认事件。

我认为应该是这样的,我只是不知道要听什么事件!

google.earth.addEventListener("SOMETHING", 'click', function(event) {
//Code to create custom baloon
});
4

1 回答 1

1

您正在收听“点击”,您需要知道的是从什么地方收听点击。

在这种情况下,我猜你想听任何多边形的点击。

为此,请为所有点击设置一个通用侦听器,然后测试点击是否在多边形上,如果是,则取消默认行为并显示自定义气球。

例如

google.earth.addEventListener(ge.getWindow(), 'click', function(e) { 
    if (e.getTarget().getType() == 'KmlPlacemark' && 
    e.getTarget().getGeometry().getType() == 'KmlPolygon') {
        // Prevent the default balloon from appearing.
        e.preventDefault();

        // create a custom balloon attached to the target
        var balloon = ge.createHtmlStringBalloon('');
        balloon.setFeature(e.getTarget());
        balloon.setContentString("custom baloon!");
        ge.setBalloon(balloon);
    }
});
于 2011-08-06T11:52:58.490 回答