/** * 计算两点距离(单位米) * * @param ptFrom * @param ptTo * @return */ public static double getDistance(Point2D ptFrom, Point2D ptTo) { Point2Ds pts = new Point2Ds(); pts.add(ptFrom); pts.add(ptTo); if (pts.getCount() < 2) { return -1; } double distanceToMe = Geometrist.computeGeodesicDistance(pts, 6378137.0, 0.003352811); return distanceToMe; }
/** * 经纬度坐标转换到地图坐标 * * @param map * @param pt */ public static void Longitude_LatitudeToMap(Map map, Point2D pt) { // 获取当前地图坐标系 PrjCoordSys srcPrjCoordSys = map.getPrjCoordSys(); // 当投影不是经纬坐标系时,则对点进行投影转换 if (srcPrjCoordSys.getType() != PrjCoordSysType.PCS_EARTH_LONGITUDE_LATITUDE) { Point2Ds points = new Point2Ds(); points.add(pt); PrjCoordSys desPrjCoorSys = new PrjCoordSys(); desPrjCoorSys.setType(PrjCoordSysType.PCS_EARTH_LONGITUDE_LATITUDE); CoordSysTranslator.convert( points, desPrjCoorSys, srcPrjCoordSys, new CoordSysTransParameter(), CoordSysTransMethod.MTH_GEOCENTRIC_TRANSLATION); pt = points.getItem(0); } }
/** * 地图坐标转换到经纬度坐标 * * @param map * @param pt */ public static void MapToLongitude_Latitude(Map map, Point2D pt) { // 获取当前地图坐标系 PrjCoordSys srcPrjCoordSys = map.getPrjCoordSys(); if (srcPrjCoordSys.getType() != PrjCoordSysType.PCS_EARTH_LONGITUDE_LATITUDE) { Point2Ds point2Ds = new Point2Ds(); point2Ds.add(pt); PrjCoordSys destPrjCoordSys = new PrjCoordSys(); // 设置目标坐标系类型 destPrjCoordSys.setType(PrjCoordSysType.PCS_EARTH_LONGITUDE_LATITUDE); // 转换投影坐标 CoordSysTranslator.convert( point2Ds, srcPrjCoordSys, destPrjCoordSys, new CoordSysTransParameter(), CoordSysTransMethod.MTH_GEOCENTRIC_TRANSLATION); pt = point2Ds.getItem(0); } }