주소를 경,위도 좌표로 변환해야 할 때가 있다.
지도위에 위치 마커를 출력할 때, 검색된 위치에 마커를 표시할 때....
#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. 단건 변환
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
)
댓글
댓글 쓰기