2011-05-24 78 views
0

我的公司使用Google Earth插件開發了一個Web應用程序(使用GWT的Java),以在地球上顯示特定的站點和其他數據。我們當前正在按照每次使用的方式管理氣球,這意味着每個需要顯示氣球的功能都在管理銷燬(如果需要)和創建氣球本身。這導致了GE插件有時會崩潰的問題,如果我們試圖打開氣球而另一個仍然打開。雖然我們幾乎在所有情況下都已經解決了這個問題,但我認爲能夠集中管理氣球(而不是每個使用氣球的地方)會很聰明(呃)。使用Google地球插件管理氣球最聰明的方法是什麼?

障礙:

  • 許多網站上顯示,這必須是非常精確的位置;

  • 正在使用多個圖層,每個圖層都可能顯示氣球;

有沒有人創建了一個「BalloonManager」類型的東西來處理這種事情?你怎麼能這樣做?

回答

1

這聽起來像你應該使用封裝,看看移動氣球創建到一個單獨的方法。

此外,關於「如果我們嘗試打開氣球而另一個打開時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); 
} 

如果你不想一個功能傳遞給方法,這將是相當瑣碎安美接受類似緯度和經度雙打例如方法。

相關問題