首页 / 浏览问题 / 移动GIS / 问题详情
如何将通过高德API获取的经纬度转换成iserver对应坐标
Lsk
10EXP 2022年12月12日

通过帮助文档得知 可以通过 CoordSysTranslator.convert()方法将两个不同坐标系的经纬度转换成坐标系,,但是其中的参数中的

  • PrjCoordSys sourcePrjCoordSysy    也就是原投影坐标系这个如何获取呢,,, 我是通过高德api获取的经纬度

1个回答

您好,高德地图采用互联网地图坐标系(火星坐标),您可以自行写算法调整偏移,移动端暂不支持加密坐标系的转换。
3,105EXP 2022年12月12日
请问用哪种方式获得的移动端实时经纬度 比较方便转换成地图服务可用的坐标系呢
可以用天地图地图服务
您可以看下iserver地图服务的坐标是什么,坐标转换可以使用CoordSysTranslator.convert(Point2Ds points, PrjCoordSys sourcePrjCoordSys, PrjCoordSys targetPrjCoordSys, CoordSysTransParameter coordSysTransParameter, CoordSysTransMethod coordSysTransMethod)

根据源投影坐标系与目标投影坐标系对坐标点串进行投影转换,结果将直接改变源坐标点串

如下为转换示例:

模拟从高德获取的坐标

Point2D point2D = new Point2D(106519485.265016,2954341.38178825);

放入点集合中,因为转换方法要求参数为点集合

Point2Ds point2Ds = new Point2Ds(); point2Ds.add(point2D);

获取地图的坐标系

PrjCoordSys desPrjCoordSys =mapControl.getMap().getPrjCoordSys();

desPrjCoordSys是目标坐标系,一般可以从打开的iserver目标数据里获得坐标系,即dataset.getPrjCoordSys(PrjCoordSys prjCoordSys)

获取目标数据集的投影信息;CoordSysTransParameter是投影坐标系转换参数,可以根据目标坐标系设置;CoordSysTransMethod为转换方法,常见有三参数七参数等方法

CoordSysTranslator.convert(point2Ds, srcPrjCoordSys, desPrjCoordSys, new CoordSysTransParameter(), CoordSysTransMethod.MTH_GEOCENTRIC_TRANSLATION);

获取转换结果

point2D = point2Ds.getItem(0);
...