我的公司开发了一个web应用程序(在Java中使用GWT),它使用Google插件来显示全球上的特定站点和其他数据。我们目前正在按每次使用的基础上管理气球,这意味着每个需要显示气球的功能都在管理气球本身的破坏(如果需要的话)和创建。这导致了一些问题,如果我们试图打开一个气球,而另一个还在打开,GE插件有时会崩溃。虽然我们几乎在每一种情况下都解决了这个问题,但我认为集中地管理气球,而不是在使用它们的每一个地方都是明智的。
障碍:
许多要展示的站点(其位置必须非常precise;
是否有人创建了一个"BalloonManager"-type来处理这类事情?你怎么能这么做?
发布于 2012-02-12 10:55:49
听起来您应该使用封装,看看如何将气球创建移动到一个单独的方法中。
另外,关于“如果我们尝试打开一个气球,而另一个气球仍在打开时,GE插件有时会崩溃的问题”--确保在打开任何气球之前只需调用ge.setBalloon(null),或者更好的是,只重复使用当前的任何气球,而不是在可用时创建一个新的气球。
下面的代码应该有助于解释--它使用的是您需要的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);
}如果您不想将一个特性传递给该方法,那么将该方法修改为接受像经度和经度这样的东西(例如双倍)将是相当简单的。
https://stackoverflow.com/questions/6112525
复制相似问题