본문 바로가기

Dev/공공데이터&API연동

도로명주소 API 좌표값 구글맵에서 사용 방법

728x90
반응형

아직도 삽질을 열심히 하고 있다...

 

도로명 주소 API를 이용해서 좌표값을 받아서 바로 사용을 할수 없다.

도로명 API에서는 ※ 좌표계 안내 : 좌표계(ITRF2000), 기준타원체(GRS80), 투영법(UTM), 장반경(6,378,137m) 기준으로 제공을 한다.

 

그래소 바로 구글맵에서 사용을 할수가 없다.

 

구글맵에서 사용하기 위해서는 데이터값을 변환을 해야 한다.

 

라이브러니는 proj4j를 사용했다.

https://mvnrepository.com/artifact/org.locationtech.proj4j/proj4j

 

Maven Repository: org.locationtech.proj4j » proj4j

Java port of the Proj.4 library for coordinate reprojection

mvnrepository.com

<dependency>
	<groupId>org.locationtech.proj4j</groupId>
	<artifactId>proj4j</artifactId>
	<version>1.1.1</version>
</dependency>

위의 정보는 maven repository정보이다.

 

java 소스

double x = Double.parseDouble( contents.getFd_x_pos() );//x좌표 
double y = Double.parseDouble( contents.getFd_y_pos() );//y좌표
CRSFactory factory = new CRSFactory();
CoordinateReferenceSystem srcCrs = factory.createFromName("EPSG:5179");
CoordinateReferenceSystem dstCrs = factory.createFromName("EPSG:4326");
BasicCoordinateTransform transform = new BasicCoordinateTransform(srcCrs, dstCrs); 
ProjCoordinate srcCoord = new ProjCoordinate(x, y); 
ProjCoordinate dstCoord = new ProjCoordinate(); 

transform.transform(srcCoord, dstCoord);//좌표변환 
contents.setChange_x_pos(dstCoord.x+"");
contents.setChange_y_pos(dstCoord.y+"");

EPSG:5179값을 찾는데 시간이 소요 됐다. 도로명 주소의 API 값으로는 조회가 되지 않아서 관련 좌표계를 찾아보았다.

 

728x90
반응형