2011-02-11 17 views
0
Line#  Lat.   Lon. 

1a  1573313.042320 6180142.720910 
.. 
.. 
1z  1569171.442602 6184932.867930 

3a  1569171.764930 6184934.045650 
.. 
.. 
3z  1570412.815667 6190358.086690 

5a  1570605.667770 6190253.392920 
.. 
.. 
5z  1570373.562963 6190464.146120 

4a  1573503.842910 6189595.286870 
.. 
.. 
4z  1570690.065390 6190218.190575 

上面的每對線(a..z)表示一起定義線的多個點的第一個和最後一個座標對。 這些行沒有按順序列出,因爲我只是通過查看座標來了解正確的順序(除非我查看地圖中的行)。因此我的問題是:我怎樣才能以編程方式查找(在Python中)正確的序列是什麼,所以我可以將這些行加入一行,記住以下問題: - 'z'點如果該行被描述爲以與其他行相反的方向進行,則該行可能是第一個點。例如一行可能從左到右,另一行從右到左(或從上到下,反之亦然)。訂購一組線以便它們跟隨另一個

預先感謝您...

+0

兩條直線相交的座標總是*完全相同,或者最後一個小數位會有小錯誤?是否有三條或更多條線路在一個點上會議?會不會有線路連接到其他線路?可能有一條線,a和z點在同一位置(線長度爲0)? – 2011-02-11 07:26:34

回答

1

創建一個詞典,其關鍵字是(lat, long)元組兩端點,其值全部是有這樣的終點線的陣列。在字典中搜索一個只有一行的元組。這是一個終點。使用字典遍歷路徑。

如果線段不連接,或者沒有結束,或者某處存在多個交點,則此方法將遇到問題。您需要決定爲這些情況做多少驗證,以及您想如何處理這些潛在問題。

相關問題