我正在寻找一个理想的数据库或数据结构来存储地图。这份地图由“路线”组成,类似于道路、路径等。路线包含节点(具有纬度和经度坐标,并且有时还有高度)。
任何这样的数据库或结构应该:
能够快速定位边界框内的所有节点(毫秒级)
可选地,在大量节点与少量节点在边界框内或边界框很大时,不会明显减慢速度
能够找到直接连接的节点:例如连接两条路线的节点
可以只读
应该是紧凑的(避免浪费空间)-我希望将英国地图放在少于1 GB的空间中。我的卫星导航仪可以在SD卡上使用约800 MB的空间进行此操作。
最初我考虑使用四叉树来存储路线。但是快速实现比较棘手,而且它们不能用于存储单个节点; 所有节点都被放入最小的边界框中。
(我故意使用Open Street Map的相同术语,因为我计划使用该数据。)