좌표 객체
좌표는 카메라나 오버레이의 위치같은 지리적 정보를 표현하기 위한 최소 단위로, 지도를 구성하는 가장 기본적인 요소입니다. 지도와 관련된 많은 API는 좌표 또는 영역을 파라미터로 받거나 반환합니다.
좌표
네이버 지도 SDK는 지구 표면의 한 지점을 위도와 경도로 표현하는 지리 좌표계를 기본 좌표계로 사용하며, 이와 관련된 기능을 제공합니다. 또한 기본 좌표계로 변환할 수 있는 몇 가지 다른 좌표계도 제공합니다.
NMGLatLng
NMGLatLng
는 하나의 위경도 좌표를 나타내는 클래스입니다. lat
NMGLatLng(py)lat) 속성이 위도를, lng
NMGLatLng(py)lng) 속성이 경도를 나타냅니다. NMGLatLng
의 모든 속성은 생성자로만 지정할 수 있고, 한 번 생성된 객체의 속성은 변경할 수 없습니다.
다음은 NMGLatLng
객체를 생성하고 콘솔에 위도와 경도를 출력하는 예제입니다.
let coord = NMGLatLng(lat: 37.5670135, lng: 126.9783740)
print("위도: \(coord.lat), 경도: \(coord.lng)")
Swift
let coord = NMGLatLng(lat: 37.5670135, lng: 126.9783740)
print("위도: \(coord.lat), 경도: \(coord.lng)")
Objective-C
NMGLatLng *coord = NMGLatLngMake(37.5670135, 126.9783740);
NSLog(@"위도: %f, 경도: %f", coord.lat, coord.lng);
다른 좌표계
네이버 지도 SDK는 NMGLatLng
외에도 몇 가지 자주 사용되는 좌표계를 제공합니다. 지원하는 좌표계는 다음과 같습니다.
WebMercatorCoord
: 웹 메르카토르 좌표계의 좌표를 의미합니다.Utmk
: UTM-K 좌표계의 좌표를 의미합니다.Tm128
: TM-128 좌표계의 좌표를 의미합니다.
각 클래스의 -toLatLng
메서드를 사용해 다른 좌표를 위경도 좌표로 변환하거나, NMGLatLng
를 파라메터로 받는 생성자를 사용해 위경도 좌표를 해당하는 좌표로 변환할 수 있습니다.
다음은 NMGUtmk
를 NMGLatLng
로 변환하는 예제입니다.
let utmk = NMGUtmk(x: 953935.5, y: 1952044.1)
let latLng = utmk.toLatLng()
Swift
let utmk = NMGUtmk(x: 953935.5, y: 1952044.1)
let latLng = utmk.toLatLng()
Objective-C
NMGUtmk *utmk = NMGUtmkMake(953935.5, 1952044.1);
NMGLatLng *latLng = utmk.toLatLng();
다음은 NMGLatLng
를 NMGUtmk
로 변환하는 예제입니다.
let latLng = NMGLatLng(lat: 37.5666103, lng: 126.9783882)
let utmk = NMGUtmk(from: latLng)
Swift
let latLng = NMGLatLng(lat: 37.5666103, lng: 126.9783882)
let utmk = NMGUtmk(from: latLng)
Objective-C
NMGLatLng *latLng = NMGLatLngMake(37.5666103, 126.9783882);
NMGUtmk *utmk = [NMGUtmk utmkFromLatLng:latlng];
MBR
각각 남서쪽과 북동쪽 꼭지점을 의미하는 두 개의 좌표가 주어진다면 직사각형 형태의 영역을 만들 수 있습니다. 이를 최소 경계 사각형 또는 MBR(Minimum Bounding Rectangle)이라고 부릅니다. MBR은 하나의 영역을 나타내는 가장 간단한 방법이므로 영역을 다루는 API에서 자주 사용됩니다.
NMGLatLngBounds
NMGLatLngBounds
는 위경도 좌표로 이루어진 하나의 MBR을 나타내는 클래스입니다. southWest
NMGLatLngBounds(py)southWest) 속성이 남서쪽 좌표를, northEast
NMGLatLngBounds(py)northEast) 속성이 북동쪽 좌표를 나타냅니다. NMGLatLngBounds
의 모든 속성은 readonly
이므로 각 속성은 생성자로만 지정할 수 있고, 한 번 생성된 객체의 속성은 변경할 수 없습니다.
다음은 NMGLatLngBounds
객체를 생성하는 예제입니다.
let southWest = NMGLatLng(lat: 31.43, lng: 122.37)
let northEast = NMGLatLng(lat: 44.35, lng: 132)
let bounds = NMGLatLngBounds(southWest: southWest, northEast: northEast)
Swift
let southWest = NMGLatLng(lat: 31.43, lng: 122.37)
let northEast = NMGLatLng(lat: 44.35, lng: 132)
let bounds = NMGLatLngBounds(southWest: southWest, northEast: northEast)
Objective-C
NMGLatLng *southWest = NMGLatLngMake(31.43, 122.37);
NMGLatLng *northEast = NMGLatLngMake(44.35, 132);
NMGLatLngBounds *bounds = [NMGLatLngBounds latLngBoundsSouthWest:southWest northEast:northEast];