问题描述
|
我公司开发了一个Web应用程序(使用GWT在Java中),该应用程序使用Google Earth插件在全球范围内显示特定站点和其他数据。目前,我们正在按使用情况管理气球,这意味着需要显示气球的每个功能都在管理气球的破坏(如果需要)和气球本身的创建。如果我们尝试打开一个气球而另一个仍然打开时,这会导致GE插件有时崩溃的问题。尽管我们几乎已经解决了所有问题,但我认为集中管理气球而不是在每个使用气球的地方都比较聪明。
障碍:
要显示的站点很多,其位置必须非常精确;
使用了多层,每层都可能显示气球;
有没有人创建处理此类事情的“ BalloonManager”类型的事情?你可能怎么做?
解决方法
听起来您应该使用封装,将气球创建移到一个单独的方法中。
另外,关于“如果我们尝试在打开另一个气球的同时打开气球的情况下GE插件有时会崩溃的问题”,请确保在打开任何气球之前简单地调用ѭ0,或者更好的是,只需重用当前的所有气球而不是创建一个新的(如果有)。
以下代码应有助于解释-它使用的是您需要的api方法,因此它应有所用。
public void function OpenFeatureBalloon(GEPlugin plugin,IKMLFeature feature)
{
// Get any open balloon
IGEFeatureBalloon balloon = plugin.getBalloon();
if (balloon == null)
{
// not there,so create one
balloon = plugin.createHtmlStringBalloon(\"\");
}
// set the balloon to the features geographic location
balloon.setFeature(feature);
// open the balloon in the plugin
ge.setBalloon(balloon);
}
如果您不想将特征传递给该方法,则修改该方法以接受诸如纬度和经度之类的值翻倍是很不容易的。