使用Google Earth插件管理气球的最明智的方法是什么?

问题描述

| 我公司开发了一个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);
}
如果您不想将特征传递给该方法,则修改该方法以接受诸如纬度和经度之类的值翻倍是很不容易的。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...