maven 依赖:
<dependency>
<groupId>org.locationtech.proj4j</groupId>
<artifactId>proj4j</artifactId>
<version>1.2.3</version>
</dependency>
GeoUtils.java:
import org.locationtech.proj4j.*;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.HashMap;
import java.util.Map;
public class GeoUtils {
private static final CoordinateTransformFactory ctf = new CoordinateTransformFactory();
private static final CRSFactory crsFactory = new CRSFactory();
public static final String ellips_code_WGS84 = "WGS84";
public static final String ellips_code_beijing1954 = "krass";
public static final String ellips_code_xian1980 = "IAU76";
private static final Map<String,String> ellips_name_code_map = new HashMap<>();
static {
ellips_name_code_map.put( "WGS84",ellips_code_WGS84 );
ellips_name_code_map.put( "beijing1954",ellips_code_beijing1954 );
ellips_name_code_map.put( "xian1980 ",ellips_code_xian1980 );
}
/**
* 高斯投影坐标转经纬度坐标
* @param gaussCoordinateVO
*/
public static LonLatCoordinateVO gaussProjectionCoordinate2LonLatCoordinate(GaussProjectionCoordinateVO gaussCoordinateVO){
String ellipsCode = null;
String ellipsName = MyStringUtils.null2EmptyWithTrim( gaussCoordinateVO.getEllipsName() );
if( ellipsName.length() == 0 ){
ellipsCode = ellips_code_WGS84;
ellipsName = "WGS84";
}else {
ellipsCode = ellips_name_code_map.get(gaussCoordinateVO.getEllipsName());
}
if( ellipsCode == null ){
throw new BusinessLogicException( "不