首页 / 浏览问题 / 移动GIS / 问题详情
安卓android使用iMobile,如何将Point2D转化为经纬度
6EXP 2022年08月23日

使用产品:iMobile 11i  操作系统:win10 x64

问题详细描述:目前使用 iserver/services/map-china400/rest/maps/China 的地图服务,在地图上点击某点后,添加一个黑色圆点标记。监听onSingleTapUp方法,通过mapControl.map.pixelToMap将MotionEvent对象转化为Point2D对象,该对象的x, y分别为X=12955592.89192754E7, Y=4854872.442531354。现在需要将该点的x,y转为经纬度信息,请问如何转化。

问题关闭原因: 已解决

1个回答

您好,您可以使用这段代码把屏幕上的点转换为经纬坐标点

private Point2D getPoint(Point point, final String pointName,
      final int idDrawable) {//第三个参数是点图片的资源,您那边要是不用可以删去
   Point2D point2D = null;

   // 转换为地图上的二维点
   point2D = m_MapControl.getMap().pixelToMap(point);
   showPointByCallout(point2D, pointName, idDrawable);

   if (m_Map.getPrjCoordSys().getType() != PrjCoordSysType.PCS_EARTH_LONGITUDE_LATITUDE) {
      PrjCoordSys srcPrjCoordSys = m_Map.getPrjCoordSys();
      Point2Ds point2Ds = new Point2Ds();
      point2Ds.add(point2D);
      PrjCoordSys desPrjCoordSys = new PrjCoordSys();
      desPrjCoordSys.setType(PrjCoordSysType.PCS_EARTH_LONGITUDE_LATITUDE);//这里使用的是投影坐标系类型常量的地理经纬坐标
      // 转换投影坐标
      CoordSysTranslator.convert(point2Ds, srcPrjCoordSys,
            desPrjCoordSys, new CoordSysTransParameter(),
            CoordSysTransMethod.MTH_GEOCENTRIC_TRANSLATION);

      point2D = point2Ds.getItem(0);
   }
   
   return point2D;
}
3,730EXP 2022年08月23日
按照该方法解决了,感谢!!!
...