2012-07-02 67 views
1

我目前正在使用JAK(用於KML的Java API)與Google Earth和定製的KML文件進行交互。我可以使用諸如Placemark p.getName()或point.getCoordinates()之類的東西來獲取/設置地名的名稱,描述,座標。到一個列表中,等等。但是,我遇到的問題是獲取用於圖標的圖像的URL。Google地球:使用JAK從KML檢索圖標URL

<Placemark> 
    <name>Isla de Roatan</name> 
    <description> 
     Cruise Stop   
    </description> 
    <Style> 
     <IconStyle> 
      <Icon> 
       <href>http://maps.google.com/mapfiles/kml/shapes/airports.png</href> 
      </Icon> 
     </IconStyle> 
    </Style> 
    <Point> 
     <coordinates>-86.53,16.337461,0</coordinates> 
    </Point> 
    </Placemark> 

我怎麼能搶,巴網址說,放在一個單獨的String對象:因此,舉例來說,如果我的KML文件有這個標中(通過一個文檔,然後整體KML標籤包含) ?我在Style中看到了.getIconStyle,IconStyle,.getIcon和Icon中的.getHttpQuery,但除了.getStyleSelector和.getStyleUrl之外,沒有其他鏈接可以查看地標/特徵中的樣式。你可以用它們中的一個或風格地圖來做到嗎?我不確定我是否完全掌握了這些功能。另外,相反,可以做些什麼來設置這個URL?謝謝你的幫助!

回答

0

Feature.getStyleSelector()返回List<StyleSelector>StyleStyleSelector的一個子類,所以您的樣式應該在此列表中(以及爲該功能定義的任何其他樣式和樣式映射)。

設置樣式(和圖標URL):

Placemark placemark = ...; 

Style myStyle = new Style().withId("my_style"); 
myStyle.withIconStyle(new IconStyle().withIcon(new Icon().withHref("http://someurl"))); 

placemark.addToStyleSelector(myStyle); 

獲取的風格(圖標URL):

for (StyleSelector styleSelector : placemark.getStyleSelector()) 
{ 
    if (styleSelector.getId() == "my_style") 
    { 
     String href = ((Style)styleSelector).getIconStyle().getIcon().getHref(); 
    } 
} 
+0

謝謝!爲了滿足我的需要,我做了一些小改動,但是((Style)styleSelector).otherstuff是讓我絆倒的東西。再次感謝:) – MiHyeon

+0

謝謝,這幫了我。我還找到了鏈接到所有標準圖標的頁面,以防任何人需要標準圖標的URL。 http://kml4earth.appspot.com/icons.html – James

相關問題