2012-05-16 90 views
8

我正在通過Google Map的V3 API加載KML文件。 KML文件中的顏色正在使用,但我想用自己的顏色覆蓋它。我實際上想爲整個痕跡使用純色。有沒有辦法做到這一點?如何覆蓋Google Map中的KML顏色?

回答

9

KML顏色基於Styleapi-doc直接在KML中定義的標籤或使用對外部KML樣式文件(類似於CSS)的引用定義的標籤。我們使用外部樣式文件,以便樣式可以應用於多個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 Styleapi-doc(與頂部鏈接相同)中的示例還顯示瞭如何直接在包含數據的KML文件中定義樣式。

0

KML是XML,因此您可以使用XSL(是的,我也不是)或PHP或(取決於具體情況)JavaScript來解析/轉換/重新序列化回KML。

4

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工作,使黃色會be

<color>ff00FFFF</color> 
<color>AABBGGRR</color> 

這一直在爲我工作。

此外,爲下面的邊界使用。

<outline>1</outline> 

https://developers.google.com/kml/documentation/kmlreference