Android學習筆記----ArcGIS在線地圖服務(Android API)坐標糾偏


僅限於如下ArcGIS在線地圖服務(高德提供數據):

//概述:彩色中文含興趣點版中國基礎地圖
//投影:WGS 1984 Web-Mercator
//切片格式:MIXED90
//服務類型:基礎地圖服務
//數據提供商:高德軟件有限公司
//數據獲取時間:2014年秋季
//地圖最后更新時間:2015年3月1日
//版權所有:北京捷泰天域信息技術有限公司
String chinaMapURL = "http://cache1.arcgisonline.cn/ArcGIS/rest/services/ChinaOnlineCommunity/MapServer";

在使用上述地圖服務進行APP開發時,發現手機GPS定位后的位置在地圖上存在較大偏差,想必這應該是地圖審查后導致的問題。如下圖:紅圈中心紅點處為真實位置,黃色圖釘符號為未糾偏位置:

采用了一個簡單的方法進行局部區域(山東淄博)坐標糾偏:

1、打開GPS,首先使用未糾偏的手機APP測出偏移后的坐標;

2、在本地地圖上找出真實的地理坐標;

3、進行投影變換(經緯度到Web墨卡托);

4、計算坐標差,進行局部參數糾偏,代碼如下:

 1 package cn.edu.sdut.duchazhushou;
 2 
 3 import com.esri.core.geometry.GeometryEngine;
 4 import com.esri.core.geometry.Point;
 5 
 6 /**
 7  * Created by jeff on 2015/5/19.
 8  */
 9 public class ClsGeometryEngine_AdjustedWarpper {
10     public static double adj_x = 649.3711175937206;
11     public static double adj_y = 38.62131773866713;
12 
13     public static Point project_point_adjusted(Point geometry, com.esri.core.geometry.SpatialReference inputSR, com.esri.core.geometry.SpatialReference outputSR) {
14         Point pnt = (Point) GeometryEngine.project(geometry,inputSR,outputSR);
15         pnt.setXY(pnt.getX()+adj_x, pnt.getY()+adj_y);
16         return pnt;
17     }
18 }

實測該地圖服務在山東淄博區域內,東西方向坐標偏差約為649.37米,南北方向坐標偏差約為38.62米。

上述數據均為Android手機所帶GPS功能測得,誤差約為3~4米。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM