我正在通过 Google Map 的 V3 API 加载 KML 文件。正在使用 KML 文件中的颜色,但我想用我自己的颜色覆盖它。我实际上想为整个轨迹使用纯色。有没有办法做到这一点?
问问题
15162 次
3 回答
10
KML 颜色基于直接在 KML 中定义或使用对外部 KML 样式文件(类似于 CSS)的引用定义的Style
api-doc标签。我们使用外部样式文件,以便可以将样式应用于多个 KML 文件。
这意味着在我们的 KML数据文件中,您会找到如下条目:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.2">
<Document>
<name>Country Borders</name>
<open>1</open>
<Placemark>
<name>Russian Federation</name>
<styleUrl>kml-styles.kml#red</styleUrl>
--- etc. ---
上面的styleUrl
标签本质上是说:去查看文件:kml-styles.kml
并找到名为:的样式red
。
在我们的 KML样式文件中,您会找到如下条目:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.2">
<Document>
<name>KML Styles</name>
<open>1</open>
<Style id="red">
<LineStyle>
<color>7da00000</color>
<width>1</width>
</LineStyle>
<PolyStyle>
<color>7f0000ff</color>
</PolyStyle>
</Style>
<Style id="green">
<LineStyle>
<color>FFFF00</color>
<width>1</width>
</LineStyle>
<PolyStyle>
<color>7f00aa00</color>
</PolyStyle>
</Style>
--- etc. ---
需要注意的是,KML 颜色api-doc定义在其定义中包含八个十六进制数字;由于前两个十六进制数字定义了颜色不透明度 (alpha),因此比其他颜色定义的惯常数字多两个数字。
KML Style
api-doc中的示例(与顶部的链接相同)还显示了如何在包含数据的 KML 文件中直接定义样式。
于 2012-05-16T02:10:28.987 回答
6
KML 颜色的工作原理是这样的,
<color>AABBGGRR</color>
AA = alpha opacity
BB = blue
GG = gren
RR = red
The range is from 00 -> ff
RGB for white = 255, 255, 255, hex -> #ffffff
RGB for yellow is 255,255,0, hex -> #ffff00
十六进制也可以看作
#RRGGBB
您可以轻松移动颜色以适用于 KML
所以 KML 中的黄色会是
<color>ff00FFFF</color>
<color>AABBGGRR</color>
这一直对我有用。
此外,对于边框使用下面。
<outline>1</outline>
https://developers.google.com/kml/documentation/kmlreference
于 2013-04-17T19:20:36.017 回答
-1
KML 是 XML,因此您可以使用 XSL(是的,我都不是)或 PHP 或(取决于具体情况)JavaScript 来解析/转换/重新序列化回 KML。
于 2012-05-16T01:28:52.803 回答