Google地图定位标记矫正
技术交流QQ:1148824289
问题概述
google地图在中国使用,都存在偏移问题,车辆明明在公路上的,点一打到地图上,可能跑到人家房顶上了,或者跑到河里去了,关于这种问题,听说是我们国家出于安全考虑要求他们这样做的吧,这个我就不多说了。下面说说怎么解决这个问题。
解决原理
网上有些解决这种问题的算法呀,或者其他解决方法,似乎都不澈底,本人介绍这种方法,精确度高,但是得配合具体数据,数据量非常大,有一个多G,通过匹配矫正。下面说说原理。
偏移量不一定是有规律的,我也不确定有没有规律,反正按我看是没有规律的,是随机的。偏移原理是把中国地图切成N块豆腐块,横切N刀竖切N刀,中国地图就变成了N多块豆腐块,一个豆腐块是个矩形,每个矩形框里面的点的偏移量是固定的,也就是说一个矩形框一个偏移量。
那么现在剩下的问题就是,怎么给你输入的经纬度,找到自己所属的矩形框,找到了自己所属的矩形框,那么就找到了偏移量,然后你的经纬度加上偏移量就得出矫正后的经纬度了。
解决方法
以下是数据源截图,总共有1700左右万条数据,也就是说,有1700左右万个矩形,总共有1.2G左右,如下图,第一列是行号,第二、三列是标志矩形块的经纬度,第四、五列是对应矩形块的偏移量。
载入内存匹配法
把数据源载入内存,写个软件,公布一接口,输入经纬度,返回矫正后的经纬度,做一超大链表,对其中一列排序,二分查找法,快速锁定矩形块。此方法优缺点:
优点:返回快,效率高,可供N多客户端调用。
缺点:吃内存,开发费事些。
数据库匹配法
把数据源存入数据库,在数据库写个存储过程,输入经纬度,返回矫正后的经纬度。此方法优缺点:
优点:开发简单,直接存库即可。访问也简单,直接访问数据库即可。
缺点:对数据库压力大,效率会差一些。
技术交流QQ:1148824289