基于大地理坐标的数据结构?

时间:2012-03-28 04:24:01

标签: data-structures language-agnostic coordinate

我并不关心使用的语言。

我有一个大型数据库,大约有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 *这样的东西找到最短路径,并通过使用一些距离限制来限制分支数量。但是,如上所述,我不清楚要使用哪种数据结构。

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:0)

您应该使用PM1 Quadtree之类的空间数据结构。

您还应该根据PM2 QuadtreePM3 Quadtree对其进行评估,以了解哪一个更适合您的约束。