从 KML 样式哈希 tmcw/togeojson 获取颜色

问题描述

我正在使用 tmcw/togeojson 方法解析 KML 文件获取数据以保存到数据库。 kml 函数似乎使用在 KML 文件中找到的 Google StyleMap id 返回一个带有 styleUrl 和 styleMapHash 的属性对象。但是,它不会返回颜色或标记图标的实际值。

例如,这是我的一个 Points 从 kml 函数返回的内容

{
  name: 'Idaho Springs',styleUrl: '#__managed_style_0AB600160E1B41A3CC31',styleHash: undefined,styleMapHash: {
    normal: '#__managed_style_1B90B87D5A1B41A3CC31',highlight: '#__managed_style_20709421461B41A3CC31'
  }
}

是否有一种简单的方法获取这些值并检索实际的颜色和图标信息?

解决方法

tmcw/togeojson 库仅附加在样式部分找到的样式。这适用于通过 Google 地球桌面版下载的 KML,但不适用于 Google 地球网络浏览器版本。在 Web 浏览器版本中,样式保存在“gx:CascadingStyle”部分,而不是 tmcw/togeojson 需要加载的样式部分。

为了解决这个问题,我创建了自己的 XML 解析器并获取了我需要的所有信息,去掉了 tmcw/togeojson。这也让我可以将它们保存在您可以在 Google 地球中创建的文件中。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...