当前位置: 首页 > 知识库问答 >
问题:

Google Earth:使用JAK从KML检索图标URL

爱茂勋
2023-03-14

我目前正在使用JAK(KML的Java API)与Google Earth和定制的KML文件进行交互。我可以使用placemark p.getName()或point等工具获取/设置地名的名称、描述和坐标。getCoordinates();但我遇到的问题是获取图标所用图像的url。例如,如果我的kml文件中有这个placemark(包含在文档中,然后是整个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中查看样式。你能用其中一个或样式图来做吗?我不确定我是否完全掌握了每一个的作用。此外,反过来,可以做些什么来设置这个URL?感谢您的任何帮助!

共有1个答案

芮岳
2023-03-14

Feature.getStyleSelector()返回一个列表

设置样式(和图标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();
    }
}
 类似资料:
  • 问题内容: 有没有一种方法可以使用Java API for KML(JAK)将图像文件添加到kmz文件中?我可以毫无问题地创建一个kml文件,但是我试图嵌入资源(例如带有一些图像文件的images文件夹),但是marshalAsKmz方法仅将Kml对象作为附加文件,因此我无法确定了解如何仅添加额外的图像。 问题答案: 我在一个项目上使用JAK已有一年多了。我用它来创建KML,然后将其编组为普通的K

  • 有没有办法删除KML文件中额外的命名空间前缀(即ns2)? 这是我从代码中收到的 kml 的一个示例: 我想要的是这样的: 这是我的java代码: 非常感谢任何帮助!谢谢!

  • 问题内容: 我正在重构一些旧代码,包括重写基本的mysql查询以使用PDO。 以下内容在所有浏览器和所有图像类型中均能出色发挥作用: 不幸的是,但是我使用PDO重写了它,但是它不起作用。我已经遍历了整个PDO文档和标准的Web搜索,但是所有建议/解决方案都无效。 如何使用PDO轻松地从MySQL中获取图像并显示图像? 编辑1: 马修·拉兹洛夫(Matthew Ratzloff)在下面给出了明显的答

  • 问题内容: 我已将一些地址上传到BatchGeo,并下载了要从中提取坐标的结果KML文件。我设法在这里在线整理了混乱的文本文件,但是我不知道如何解析它以提取坐标。 似乎有几个适用于python的kml库,但在文档方面却没有太多(例如pyKML)。通过本教程,我已经了解了这一点,并创建了一个’lxml.etree._ElementTree’对象,但不确定其属性: 这给出了错误: 那么如何获取坐标列表

  • 我试图使用谷歌高程服务来创建一个高程配置文件,就像这样: https://google-developers.appspot.com/maps/documentation/javascript/examples/elevation-paths 下面是Javascript: 我有一个KML文件。内容包括: 谷歌开发者博客上的例子从特定的lat和lon值创建了一条路径。我在kml文件的“坐标”下已经有

  • 我用Java编写了一个应用程序,它使用CloudGarden API解析JSAPI语法,从语法规则返回标记,然后相应地处理这些标记。CloudGarden API的问题是它对Windows的依赖性。我需要一个可以执行相同任务的跨平台库。我不需要语音合成,也不需要语音识别。本质上,一个字符串被传递给包含一些转录语音的程序。我需要根据语法文件解析这个字符串,以检索动作标记(JSGF语法规则中{}之间的