Google地圖定位標記矯正
技術交流QQ:1148824289
問題概述
google地圖在中國使用,都存在偏移問題,車輛明明在公路上的,點一打到地圖上,可能跑到人家房頂上了,或者跑到河裏去了,關於這種問題,聽說是我們國家出於安全考慮要求他們這樣做的吧,這個我就不多說了。下面說說怎麼解決這個問題。
解決原理
網上有些解決這種問題的算法呀,或者其他解決方法,似乎都不澈底,本人介紹這種方法,精確度高,但是得配合具體數據,數據量非常大,有一個多G,通過匹配矯正。下面說說原理。
偏移量不一定是有規律的,我也不確定有沒有規律,反正按我看是沒有規律的,是隨機的。偏移原理是把中國地圖切成N塊豆腐塊,橫切N刀豎切N刀,中國地圖就變成了N多塊豆腐塊,一個豆腐塊是個矩形,每個矩形框裏面的點的偏移量是固定的,也就是說一個矩形框一個偏移量。
那麼現在剩下的問題就是,怎麼給你輸入的經緯度,找到自己所屬的矩形框,找到了自己所屬的矩形框,那麼就找到了偏移量,然後你的經緯度加上偏移量就得出矯正後的經緯度了。
解決方法
以下是數據源截圖,總共有1700左右萬條數據,也就是說,有1700左右萬個矩形,總共有1.2G左右,如下圖,第一列是行號,第二、三列是標誌矩形塊的經緯度,第四、五列是對應矩形塊的偏移量。
載入內存匹配法
把數據源載入內存,寫個軟件,公佈一接口,輸入經緯度,返回矯正後的經緯度,做一超大鏈表,對其中一列排序,二分查找法,快速鎖定矩形塊。此方法優缺點:
優點:返回快,效率高,可供N多客戶端調用。
缺點:喫內存,開發費事些。
數據庫匹配法
把數據源存入數據庫,在數據庫寫個存儲過程,輸入經緯度,返回矯正後的經緯度。此方法優缺點:
優點:開發簡單,直接存庫即可。訪問也簡單,直接訪問數據庫即可。
缺點:對數據庫壓力大,效率會差一些。
技術交流QQ:1148824289