2012-11-09 235 views
0

我在使用Google Earth時可視化多邊形存在問題。我從頂部到底部讀取.xlsx文件(在java中),我有一組座標(x,y)。我的應用程序使用JAK lib生成.kml文件。之後,當我將這個.kml文件導入到Google地球中時,我的多邊形形狀不正確。這裏是例子:KML多邊形座標排序(順時針,逆向)

wrong polygon shape

的事情是,在KML文件座標的順序,因爲它們出現在圖像上。最後一個座標默認連接到第一個,這就是問題所在。 如何排列這個形狀將成爲rectagle的座標?當然這是最簡單的例子。我有更復雜的多邊形(在文件中)比矩形一個。

回答

0

如果您的多邊形凸出,則可以實施任何convex-hull algorithm。這將適用於您的示例,但不適用於更復雜的多邊形。

+0

是的。非常感謝你。我做到了。我甚至發現用Java編寫的很好的凸包算法。不幸的是,它發生了一些多邊形不凸。 – szymon

1

KML的LinearRing在多邊形中使用的結構是一個環,所以多邊形按照您在環中指定的順序線性繪製。所以如果你想畫一個矩形,他們需要訂購1,2,4 3.

KML中沒有什麼能夠告訴它以不同的方式解釋環。在閱讀XSLX時,您需要將它們排序到Java應用程序中,或者讓任何向您提供數據的人以正確的順序向您發送點列表。我不確定你所做的是什麼域名,但將它們以任何方式發送給你是沒有意義的,除非它是一個點的線性圓環,爲了讓你畫線。

+0

當然你是對的。我知道這個順序是錯誤的,我也知道這不是處理座標排序的KML事情。我的問題是如何排序(在Java)的座標,以便我會得到一個矩形多邊形比我附加在圖片上。 – szymon