Google地球:使用JAK从KML检索图标网址

时间:2012-07-02 19:43:28

标签: api url kml google-earth jak

我目前正在使用JAK(KML的Java API)与Google Earth和自定义的KML文件进行交互。我可以使用Placemark p.getName()或point.getCoordinates()等内容来获取/设置地标的名称,描述和坐标;到列表,等等。但我遇到的问题是获取用于图标的图像的网址。例如,如果我的kml文件中包含此地标(包含在Document中,然后包含整个KML标记):

  <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>

我如何抓住那个png url来说,放入一个单独的String对象?我在Style中看到了.getIconStyle,在IconStyle,.getIcon和Icon中的.getHttpQuery,但是除了.getStyleSelector和.getStyleUrl之外,没有任何内容可以链接查看Placemark / Feature中的Style。你能用其中一个或样式地图来做吗?我不确定我是否完全掌握了每一项的作用。另外相反,如何设置此URL?谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

Feature.getStyleSelector()返回List<StyleSelector>StyleStyleSelector的子类,因此您的Style应该在此列表中(以及为该功能定义的任何其他样式和StyleMaps)。

设置样式(和图标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();
    }
}