地图数据的分布式设计有两种方式:
1.基于地图瓦片:把经纬度转换成平面坐标系,然后在特定的比例尺下用瓦片分割地图,建立瓦片与地图图元关键字的关系,图元关键字包含图层ID和图元ID,这样基于经纬度的查询就会很容易定位到具体瓦片,多个经纬度也可以通过坐标转换和计算后定位瓦片组,查询瓦片内的图元关键字将会非常快,因为搜索条件是数量恒定的瓦片索引,跟有多少个图层和图元没有任何关系,此方式适合国际化。
2.国内范围按省份和城市划分区域,建立区域与图元关键字的关系,此方式不适合国际化的要求
实时路况信息一定是跟道路相关的,在道路图层中每条道路要建立起始坐标(瓦片平面坐标或经纬度)和中间坐标,要建立一定密度的,也就是通过这些该条道路的所有坐标可以在地图上画出该条道路的轨迹(精确度取决于坐标密度),
然后将该条道路上的实时路况信息(GPS或其它)实时渲染出来。
从A地到B地的最优路径的搜索也很简单,有了A到B的瓦片组,所有可到达(或接力)的道路图元就能很快搜索出来,然后经过一些坐标计算结合实时路况信息,就很容易选择出当前最快的路径。不需要什么高深莫测的算法,越简单也越快,关键在于后台模型的设计。