dependency
<dependency>
<groupId>org.osgeo</groupId>
<artifactId>proj4j</artifactId>
<version>0.1.0</version>
</dependency>
service
import org.osgeo.proj4j.BasicCoordinateTransform;
import org.osgeo.proj4j.CRSFactory;
import org.osgeo.proj4j.CoordinateReferenceSystem;
import org.osgeo.proj4j.ProjCoordinate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
@Service
public class GpsService {
private final Logger logger = LoggerFactory.getLogger(getClass());
/**
* 좌표계 변환
* @param locX
* @param locY
* @param crsFrom (EPSG:5179)
* @param crsTo (EPSG:4326)
* @return
*/
public String[] convEpsg(String locX,String locY,String crsFrom,String crsTo) {
// logger.info("convEpsg {},{},{},{}",locX,locY,crsFrom,crsTo);
String[] result = null;
try {
double dX = Double.parseDouble(locX);
double dY = Double.parseDouble(locY);
CRSFactory factory = new CRSFactory();
// CoordinateReferenceSystem srcCrs = factory.createFromName("EPSG:5179");//현재 좌표
CoordinateReferenceSystem srcCrs = factory.createFromName(crsFrom);//현재 좌표
if(ObjectUtils.isEmpty(crsTo) == true) {
crsTo = "EPSG:4326";
}
CoordinateReferenceSystem dstCrs = factory.createFromName(crsTo);//변경할 좌표
// CoordinateReferenceSystem dstCrs = factory.createFromName("EPSG:5181");//다음맵에서 사용중인 좌표계
// https://devtalk.kakao.com/t/topic/35844/3
BasicCoordinateTransform transform = new BasicCoordinateTransform(srcCrs, dstCrs);
ProjCoordinate srcCoord = new ProjCoordinate(dX, dY);
ProjCoordinate dstCoord = new ProjCoordinate();
transform.transform(srcCoord, dstCoord);//좌표변환
String lng = String.format("%.18f",dstCoord.x);
String lat = String.format("%.18f",dstCoord.y);
// logger.info("lat:{},lng:{}",lat,lng);
if(ObjectUtils.isEmpty(lat) == false && ObjectUtils.isEmpty(lng) == false) {
result = new String[] { lng,lat };
}
}catch(Exception ex) {
logger.error("convEpsg",ex);
}
return result;
}
}
'프로그램 > Java' 카테고리의 다른 글
spring boot mongo query (0) | 2021.05.14 |
---|---|
spring boot mongodb (0) | 2021.05.14 |
jar/war 파일을 직접 실행할 수 있게 만드는 옵션 (0) | 2021.05.14 |
Using the MariaDB JDBC driver with Amazon Aurora with MySQL compatibility (0) | 2021.05.14 |
범위 지정 랜덤 & 가중치 랜덤 (0) | 2020.10.28 |