2022년 10월 14일 금요일

[주소] 행안부 오픈 API 좌표 -> 경,위도 좌표 변환


주소를 경,위도 좌표로 변환해야 할 때가 있다. 

지도위에 위치 마커를 출력할 때, 검색된 위치에 마커를 표시할 때....

#GPS #위치정보 #Redshift #행안부 #오픈API #OpenAPI

 행안부 오픈 API 좌표 -> 경,위도 좌표 변환

1. web에서 전환하는 방법

proj4.defs["EPSG:5179"] 〓 "+proj〓tmerc +lat_0〓38 +lon_0〓127.5 +k〓0.9996 +x_0〓1000000 +y_0〓2000000 +ellps〓GRS80 +units〓m +no_defs";//제공되는 좌표 

var grs80 〓 proj4.Proj(proj4.defs["EPSG:5179"]) 
var wgs84 〓 proj4.Proj(proj4.defs["EPSG:4326"]); //경위도 

var p 〓 proj4.Point( 945959.0381341814 , 1953851.7348996028 );//한국지역정보개발원 좌표 
p 〓 proj4.transform( grs80, wgs84, p); 

d0cument .write(p.x + " " + p.y); 

//출력결과 
wgs84 : 126.88793748501445 37.582468731587305

2. java application에서 전환하는 방법

double x 〓 Double.parseDouble( point[0] );//x좌표 
double y 〓 Double.parseDouble( point[1] );//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);//좌표변환 
System.out.println(dstCoord.x + "," + dstCoord.y);//변환된 좌표 

3. 단건 변환
  • 국토정보플랫폼 > 국가수직기준연계 > 좌표변환 접속 (http://map.ngii.go.kr/ms/mesrInfo/coordinate.do)
    • 좌표계 선택 : UTM-K
    • N 좌표 입력 : {건물중심점Y좌표}
    • E 좌표 입력 : {건물중심점X좌표}
  • 좌표변환 클릭
    • 위경도 단위 Degeree 선택


4. AWS Redshift 에서 변환하기
     Redshift는 PostgreSQL을 기반으로한  DW 목적으로 만든 서비스 임.
select  st_y(geom) as latitude,
        st_x(geom) as longitude,
        spcl_city_do_nm,
        city_gun_gu_nm,
        admst_dong_nm,
        up_myun_dong_nm,
        city_gun_gu_bld_nm,
        dtl_bld_nm
from    (
            select  *,
                    st_transform(st_setsrid(st_makepoint(bld_ctr_x_coord, bld_ctr_y_coord), 5179), 4326) as geom
            from    dw_comm.comm_navi_bld_info
            where   del_flag = 'N'
            limit   5
        )

라벨: , , , , ,