首页 / 浏览问题 / 移动GIS / 问题详情
从GPS中获得的经纬度信息,经过坐标转换,在在线地图上显示时存在几公里的位置偏差
3EXP 2019年09月30日

使用产品:imobile 9d 操作系统:win7 x64
数据类型: 在线地图服务
问题详细描述:

在研究超图的在线地图,打开方式如下

String url = "http://t2.supermapcloud.com";
DatasourceConnectionInfo info = new DatasourceConnectionInfo();
info.setAlias("OpenStreetMap2");
info.setEngineType(EngineType.SuperMapCloud);
info.setServer(url);

Datasource datasource = workspace.getDatasources().open(info);
if(datasource != null){
   mMap.getLayers().add(datasource.getDatasets().get(0), true);
}
mMap.refresh();

在线地图坐标系类型为 PCS_USER_DEFINED。

通过GPS获得当前位置的经纬度信息后,通过坐标转换,得到投影坐标,然后再在地图上显示出来

经纬度转换到投影坐标:

Point2Ds points = new Point2Ds();
points.add(pt);

PrjCoordSys srcPrjCoorSys = new PrjCoordSys();
srcPrjCoorSys.setType(PrjCoordSysType.PCS_EARTH_LONGITUDE_LATITUDE);
CoordSysTranslator.convert(points, srcPrjCoorSys, mMapControl.getMap().getPrjCoordSys(),  new
      CoordSysTransParameter(), CoordSysTransMethod.MTH_GEOCENTRIC_TRANSLATION );
pt = points.getItem(0);

在地图上面显示的位置与实际所在位置偏差约七八公里,请问下是需要纠偏么还是转换方法有问题

1个回答

您好,位置的偏差一般都是由于定位点坐标与底图坐标不一致导致的,您使用的在线地图超图云地图采用的是火星坐标系:GCJ-02坐标系,而Android原生的坐标系是WGS-84的。对于偏差有两种解决方案:1.更换底图或者定位的坐标类型  2.对定位的点坐标进行坐标转换。详细方法可以参考以下这篇博客:https://blog.csdn.net/supermapsupport/article/details/80318735

9,197EXP 2019年10月08日
...