我目前正在使用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?谢谢你的帮助!
答案 0 :(得分:0)
Feature.getStyleSelector()
返回List<StyleSelector>
。 Style
是StyleSelector
的子类,因此您的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();
}
}