GPS地圖坐標偏移及地圖糾偏解決方法和代碼
這和地圖引擎沒有關系, 在中國商業地圖數據提供和服務提供商,都必須要到國家測繪管理部門,進行評審通過獲得牌照后才能在大陸發布,谷歌地圖也也一樣。地圖服務器商都需將真實坐標的電子地圖,加密成火星地圖和火星坐標。GPS導航設備生產制造商也需要這樣做。所以就出現了GPS坐標在基於WGS84坐標系統的地圖上顯示出現坐標偏移,誤差很大很嚴重,而且不是線性的,網上有人給出算法公式,都是胡說八道,根本不好用,更離譜的還要根據不同的城市,進行不同的加偏,還有的提供了一個加偏數據庫,瞎扯淡。
開發者之所以遇到坐標偏移的悲劇,主要原因是:
GPS設備是小公司開發的,沒有做加偏,所以在經過加偏的正版地圖和谷歌、百度、Bing地圖上是偏移的。
所以偏移其實給地圖一點關系都沒有,管你是谷歌、百度還是搜狐地圖,只要對GPS坐標進行加偏處理就能夠解決這個問題。
為了解決GMap.NET的谷歌地圖坐標偏移的問題,我就開發了一個加偏的動態庫給開發者來使用,直接在.NET的工程項目中調用轉換方法即可,絕對好用,在谷歌和百度地圖上,車輛行駛的軌跡和地圖的道路是嚴絲合縫的吻合的。
實時加偏,采用加偏算法和逆向糾偏算法,可以實時的進行百度地圖的坐標系統轉換,不需要百度自帶的webservice服務,避免了百度調用接口的限制及性能的損失,因為每次遠程調用http,都要耗費不固定的遠程調用時間及調用超時的時間。
另外存在一個問題是,無論是那個地圖,在地圖上畫的區域存儲在數據庫的都是自己地圖坐標系統的經緯度節點,如果要進行電子圍欄報警,下發給終端的時候,終端是百分百誤報的,因為終端的坐標和地圖坐標系統不符,需要在下發給終端前,還原成原始坐標再下發給終端。所以就需要逆向還原的糾偏算法。我們提供正向和反向的算法庫。
需要購買C# .netframework2.0 離線版 DLL 的300元 算法源碼600元,包含原始坐標加偏和逆向糾偏還原成原始坐標。提供火星坐標和百度坐標兩種接口,不是數據庫,提供的是算法源碼,實時解析,需要的可以直接聯系我(speed.zheng@gmail.com)購買。
離線版的是基於C#動態庫調用,不需要聯網,不需要數據庫,體積不超過1M。 在線試用版可以試用一個月,一個月后功能自動失效。
很多人寧願在網上找一打算法,花很多時間自己搗鼓,最好沒有什么好的效果。其實糾偏這個功能,准不准,下載下來,在地圖商測試一目了然。收費有收費的道理。

調用說明:
1.環境.NET4.0 類庫支持;
2.引用GpsFix.dll此動態庫到你的工程項目中;
3.C#開發:
double latitude = 38.123; double longitude = 124.5; //單個坐標轉換 GpsPoint gp = MapFix.Fix(latitude, longitude); //批量轉換 List<GpsPoint> needTransformGpsPoints; List<GpsPoint> gpsPoints = MapFix.Fix(needTransformGpsPoints);