1

現在、JAK(Java API for KML)を使用してGoogleEarthとカスタマイズされたKMLファイルを操作しています。Placemark p.getName()やpoint.getCoordinates()などを使用して、目印の名前、説明、座標を取得/設定できます。リストなどに入れます。しかし、私が問題を抱えているのは、アイコンに使用されている画像のURLを取得することです。たとえば、kmlファイルにこの目印が含まれている場合(ドキュメントと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>

そのpngURLを取得して、別のStringオブジェクトに入れるにはどうすればよいですか?Style内で.getIconStyle、IconStyle内で.getIcon、Icon内で.getHttpQueryを見てきましたが、.getStyleSelectorと.getStyleUrlを除いて、Placemark/FeatureからStyleを調べるリンクはありません。それらの1つまたはスタイルマップでそれを行うことができますか?これらのそれぞれが何をしているのかを完全に把握しているかどうかはわかりません。さらに逆に、このURLを設定するにはどうすればよいですか?助けてくれてありがとう!

4

1 に答える 1

0

Feature.getStyleSelector()を返しますList<StyleSelector>StyleはのサブクラスでStyleSelectorあるため、スタイルはこのリストに含まれている必要があります(フィーチャーに定義されている他のスタイルおよびスタイルマップと一緒に)。

設定スタイル(およびアイコン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();
    }
}
于 2012-07-03T05:05:41.083 に答える