2012-03-28 62 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

回答

相关问题