2012-03-28 56 views
1

我並不在乎所用的語言。基於大型地理座標的數據結構?

我已經爲世界各地的各種航空座標周圍84.1k條目的大型數據庫,它們的格式如下:

A1 023 UBL 15.245197 104.865917 
A1 024 BUTRA 15.418278 105.596083 
A1 025 PAPRA 15.766667 107.183333 
A1 026 BATEM 15.931389 107.765556 
A1 027 DAN 16.052778 108.198333 
A1 028 BUNTA 16.833334 109.395000 
A1 029 LENKO 17.416667 110.300000 
A1 030 IKELA 18.661667 112.245000 
A1 031 IDOSI 19.000000 112.500000 
A1 032 CH 22.219542 114.030056 

第一個數字是空中航線(有數以百計的這些)。第二個數字是座標在空中航線順序方面的位置。第三個是修復的名稱,第四和第五個是座標本身。

描述它的一種更好的方式是高速公路。假設A1是高速公路。 UBL,BUTRA,PAPRA等......都是退出。 023,024,025是您遇到這些退出的順序(我將在22退出後看到UBL,因爲它是23日然後BUTRA,24然後是PAPRA,25)。

但是,這些出口導致新的高速公路,而不是城市。例如,UBL出口導致

A1 023 UBL 15.245197 104.865917 
G473 006 UBL 15.245197 104.865917 
R470 001 UBL 15.245197 104.865917 
W1 018 UBL 15.245197 104.865917 
W4 031 UBL 15.245197 104.865917 
W5 013 UBL 15.245197 104.865917 

我的最終目標是,使用這些點,使用這些航線找到兩個城市之間的最短距離。但是,那不是我的問題。我可以弄清楚,但我不確定使用哪種結構來保存這個東西。這是我的編程老師首先建議我需要某種結構來組織數據。

我在想..因爲我要找到第一個和最後一個點,要搜索列表,抓住所有可能的「高速公路」,然後使用類似A *的方法找到最短路徑,並通過使用一些距離限制來限制分支的數量。但是,如前所述,我不清楚要使用哪種數據結構。

任何幫助表示讚賞。

+2

難道你不能使用圖形作爲數據結構嗎?如果您使用A *,您也可以使用物理座標作爲搜索啓發式的一部分。 – 2012-03-28 04:32:48

+0

84k條目對於數據庫來說並不算什麼。對於搜索,也許,但從存儲的角度來看,不是。 – 2012-03-28 05:46:01

+0

你有沒有考慮過其中一個非sql數據庫?圖表一,也許:http://en.wikipedia.org/wiki/Graph_Database – 2012-03-28 05:48:33

回答

相關問題