2009-07-24 100 views
5

有沒有人有任何以編程方式在KML中將圖標繪製爲矢量的實際示例?具體來說,我在給定的座標下有一個幅度和方位角的數據,並且我希望根據這些值生成圖標(或其他圖形元素)。以編程方式在KML中創建矢量箭頭

如何,我可能接近它的幾點思考:

  1. 圖片目錄(蠻力方式):使360個不同的圖像文件的圖像董事(可能批旋轉單個圖像)每個指向在相應的方位角。我已經看到諸如「Excel to KML」之類的東西,但是我正在尋找可以在程序中使用的代碼,而不是Web實用程序。 問題:箭頭不包含幅度上下文,因此必須是標籤。我寧願動態地延長箭頭。

  2. 線製作在KML:也許創建一個用於創建與所述座標點的原點的直線,與正比於magnitute的線的長度的公式,並根據方位傾斜。然後會有兩條線,也許從前一條線的末端延伸30度左右,以製作箭頭。 問題:不是一個單獨的圖像圖標,因此不確定它在KML中的工作方式。也不確定生成這種算法是多麼容易。

  3. 獨立圖像生成:也許創建使用ImageMagick的或類似的動態生成的類似方法,以上述.png文件東西PHP文件,然後鏈接到使用URI圖標「使用domain.tld /imagegen.php?magnitude=magvalue & azimuth = azmvalue「。 問題:還存在實際編寫圖像生成算法的問題。

所以,問題:有其他人來爲編程載體的解決方案(而不是簡單的箭頭)代?

回答

3

我已經看到這樣做了(在Fortran中!)選項1的變體,但只使用一個箭頭圖像並使用KML IconStyle元素設置大小和方向。

訣竅是首先將您的矢量從您擁有的任何格式轉換爲標題(從北方順時針旋轉到0到360度之間),並將矢量長度轉換爲比例因子(以十進制表示的浮點數)。您還需要爲每個向量指定一個唯一的名稱。然後,對每個矢量創建KML的一大塊,說矢量「我的矢量-1」的1.8的比例和90.0(即東)的標題:

<IconStyle id="my-vector-1"> 
    <scale>1.8</scale> 
    <heading>90.0</heading> 
    <Icon> 
     <href>/path/to/arrow.png</href> 
    </Icon> 
</IconStyle> 

,然後放置載體上地圖參考IconStyle:

<Placemark> 
    <styleUrl>#my-vector-1</styleUrl> 
    <Point> 
    <coordinates>-10.5,10.8</coordinates> 
    </Point> 

包裝全部起來:

<kml><Document> ... </Document></kml> 

,你應該解散玩一堆矢量。獲得正確的比例因子可能需要一些實驗(並且將取決於您的箭頭圖像的大小),但這種方法應該快很多,然後加載許多不同的圖像。如果有任何幫助,我可以挖出Fortran來做到這一點...

+0

無法通過更改標題來獲取要旋轉的矢量圖像。有什麼建議麼? – 2012-06-02 11:12:29