티스토리 뷰

지도API 좌표체계
작성자 : 타돌이
번호 : 63
(2010-04-07 18:03)
추천 : 0
조회 : 7346

Daum 지도 API는 기본좌표체계로 WGS84 위도/경도 좌표계를 사용하고 있습니다. 그러나, 기존의 콩나물좌표계 및 다른 지도 API와의 연계 혹은 사용하고 싶은 좌표계를 사용할 수 있도록 좌표변환 방법을 제공하고 있습니다.

Daum 지도 API는 총 9개의 좌표계를 지원합니다. (TM, KTM, UTM, WGS84, CONGNAMUL, BESSEL, WTM, WKTM, WCONGNAMUL)

좌표계 기반타원체 설명 비고
wgs84 wgs84 wgs84타원체를 사용하는 좌표계입니다.
위/경도 구형 좌표계
구글맵
야후맵
MS Live맵
tm bessel bessel타원체를 사용하는 국지 좌표계로써 우리나라의 경우 서부, 중부, 동부의 3개의 기준점을 가지고, 좌우 1도씩, 2도 간격의 평면좌표계입니다.
congnamul bessel bessel타원체를 기반으로 한 tm좌표계의 변형으로 섬지역(제주도, 독도, 울릉도, 백령도)의 실제 위치를 육지쪽으로 당겨 놓은 형태의 평면좌표계 콩나물 지도
다음 지도
wcongnamul wgs84 wgs84타원체를 기반으로 한 tm좌표계의 변형 콩나물 지도
다음 지도
ktm bessel G7이라는 프로젝트의 일환으로 자동차부품연구원에서 네비게이션쪽에서 공동으로 사용하기 위해 만든 좌표계로써, 중부원점(127, 38)에서 약간 벗어난(128, 38)기준을 가지는 평면좌표계 네이버 지도
utm bessel tm이 국지 좌표계로써 각 나라마다 다른 기준점을 가진다면, utm은 전세계 공통으로 약간의 오차를 허용하며 좌우 3도씩, 6도 간격의 평면좌표계 입니다.
wtm wgs84 wgs84타원체를 사용하여 평면좌표계로 투영한 tm좌표계 입니다.
wktm wgs84 wgs84타원체를 사용하여 평면좌표계로 투영한 ktm좌표계입니다.
bessel bessel bessel타원체를 사용하는 구형좌표계입니다.

1. 좌표를 변환하려면 DMap 클래스의 getTransCoord메소드를 사용해서 변환할 수 있습니다.

1.var maps = new DMap("mappanel");
2.var latlng = maps.getTransCoord(new DPoint(506746, 1107390), "congnamul", "wgs84");
3.// latlng = 37.48879895934866, 127.03130020103005

2. WGS84(위/경도) 좌표계의 경우 DLatLng클래스를 사용하여 좌표지정을 할 수 있습니다.

1.var maps = new DMap("mappanel");
2.//DLatLng 클래스를 사용하여 WGS84(위/경도) 좌표계를 사용하여 중심좌표 설정
3.maps.setCenter(new DLatLng(37.48879895934866, 127.03130020103005), 2);

3. Daum 지도 API의 기본 좌표계를 wgs84가 아닌 다른 좌표계로 변경하여 사용 가능합니다.

1.var maps = new DMap("mappanel");
2.maps.setCoordinateType("ktm");

4. Marker 나 Graphic객체 같은 Overlay들에서도 옵션을 이용하여 각각 다른 좌표체계를 적용할 수 있습니다.

1.var maps = new DMap("mappanel");
2.var marker = new DMark(new DLatLng(37.48879895934866, 127.03130020103005), {
3.        infowindow:iw,
4.        draggable:true });
5.maps.addOverlay(marker);  //좌표계 설정이 없으면 기본좌표계 사용
6.var line = new DLine(new DPoint(505997, 1109977), new DPoint(513861, 1113220), {
7.        coordinate : "congnamul"}); //콩나물좌표계로 사용
8.maps.addOverlay(line);
주의!! WGS84좌표계의 경우 DPoint클래스를 사용하면 경도, 위도 순으로 파라메터를 입력하여야 합니다. DLatLng 클래스를 권장합니다.

1. DPoint를 사용하여 WGS84 좌표 입력

1.var maps = new DMap("mappanel");   
2.var marker = new DMark(new DPoint(37.48879895934866, 127.03130020103005));
3.// ( X )
4.var marker = new DMark(new DPoint(127.03130020103005, 37.48879895934866));
5.// ( O )

2. DLatLng를 사용하여 WGS84 좌표 입력

1.var maps = new DMap("mappanel");
2.var marker = new DMark(new DLatLng(37.48879895934866, 127.03130020103005));
3.// ( O )
4.var marker = new DMark(new DLatLng(127.03130020103005, 37.48879895934866));
5.// ( X )
댓글