좌표 객체

좌표는 카메라나 오버레이의 위치같은 지리적 정보를 표현하기 위한 최소 단위로, 지도를 구성하는 가장 기본적인 요소입니다. 지도와 관련된 많은 API는 좌표 또는 영역을 파라미터로 받거나 반환합니다.

좌표

네이버 지도 SDK는 지구 표면의 한 지점을 위도와 경도로 표현하는 지리 좌표계를 기본 좌표계로 사용하며, 이와 관련된 기능을 제공합니다. 또한 기본 좌표계로 변환할 수 있는 몇 가지 다른 좌표계도 제공합니다.

LatLng

LatLng는 하나의 위경도 좌표를 나타내는 클래스입니다. latitude 속성이 위도를, longitude 속성이 경도를 나타냅니다. LatLng의 모든 속성은 final이므로 각 속성은 생성자로만 지정할 수 있고, 한 번 생성된 객체의 속성은 변경할 수 없습니다.

다음은 LatLng 객체를 생성하고 토스트로 위도와 경도를 출력하는 예제입니다.

LatLng coord = new LatLng(37.5670135, 126.9783740);

Toast.makeText(context,
    "위도: " + coord.latitude + ", 경도: " + coord.longitude,
    Toast.LENGTH_SHORT).show();

Java

LatLng coord = new LatLng(37.5670135, 126.9783740);

Toast.makeText(context,
    "위도: " + coord.latitude + ", 경도: " + coord.longitude,
    Toast.LENGTH_SHORT).show();

Kotlin

val coord = LatLng(37.5670135, 126.9783740)

Toast.makeText(context,
        "위도: ${coord.latitude}, 경도: ${coord.longitude}",
        Toast.LENGTH_SHORT).show()

다른 좌표계

네이버 지도 SDK는 LatLng외에도 몇 가지 자주 사용되는 좌표계를 제공합니다. 지원하는 좌표계는 다음과 같습니다.

각 클래스의 toLatLng() 메서드를 사용해 다른 좌표를 위경도 좌표로 변환하거나, valueOf() 스태틱 메서드를 사용해 위경도 좌표를 해당하는 좌표로 변환할 수 있습니다.

다음은 UtmkLatLng로 변환하는 예제입니다.

Utmk utmk = new Utmk(953935.5, 1952044.1);
LatLng latLng = utmk.toLatLng();

Java

Utmk utmk = new Utmk(953935.5, 1952044.1);
LatLng latLng = utmk.toLatLng();

Kotlin

val utmk = Utmk(953935.5, 1952044.1)
val latLng = utmk.toLatLng()

다음은 LatLngUtmk로 변환하는 예제입니다.

LatLng latLng = new LatLng(37.5666103, 126.9783882);
Utmk utmk = Utmk.valueOf(latLng);

Java

LatLng latLng = new LatLng(37.5666103, 126.9783882);
Utmk utmk = Utmk.valueOf(latLng);

Kotlin

val latLng = LatLng(37.5666103, 126.9783882)
val utmk = Utmk.valueOf(latLng)

MBR

각각 남서쪽과 북동쪽 꼭지점을 의미하는 두 개의 좌표가 주어진다면 직사각형 형태의 영역을 만들 수 있습니다. 이를 최소 경계 사각형 또는 MBR(Minimum Bounding Rectangle)이라고 부릅니다. MBR은 하나의 영역을 나타내는 가장 간단한 방법이므로 영역을 다루는 API에서 자주 사용됩니다.

LatLngBounds

LatLngBounds는 위경도 좌표로 이루어진 하나의 MBR을 나타내는 클래스입니다. southWest 속성이 남서쪽 좌표를, northEast 속성이 북동쪽 좌표를 나타냅니다. LatLngBounds의 모든 속성은 final이므로 각 속성은 생성자로만 지정할 수 있고, 한 번 생성된 객체의 속성은 변경할 수 없습니다.

다음은 LatLngBounds 객체를 생성하는 예제입니다.

LatLng southWest = new LatLng(31.43, 122.37);
LatLng northEast = new LatLng(44.35, 132);
LatLngBounds bounds = new LatLngBounds(southWest, northEast);

Java

LatLng southWest = new LatLng(31.43, 122.37);
LatLng northEast = new LatLng(44.35, 132);
LatLngBounds bounds = new LatLngBounds(southWest, northEast);

Kotlin

val southWest = LatLng(31.43, 122.37)
val northEast = LatLng(44.35, 132.0)
val bounds = LatLngBounds(southWest, northEast)

빌더

LatLngBounds.Builder를 사용하면 여러 좌표를 포함하는 MBR을 만들 수 있습니다. 빌더 객체를 생성하고 include() 메서드를 호출해 영역에 포함시킬 좌표를 지정한 후 build() 메서드를 호출하면 include()로 지정된 좌표들을 모두 포함하는 영역에 대한 LatLngBounds 객체가 만들어집니다.

다음은 LatLngBounds.Builder를 이용해 LatLngBounds 객체를 생성하는 예제입니다.

LatLngBounds bounds = new LatLngBounds.Builder()
    .include(new LatLng(37.5640984, 126.9712268))
    .include(new LatLng(37.5651279, 126.9767904))
    .include(new LatLng(37.5625365, 126.9832241))
    .include(new LatLng(37.5585305, 126.9809297))
    .include(new LatLng(37.5590777, 126.974617))
    .build();

Java

LatLngBounds bounds = new LatLngBounds.Builder()
    .include(new LatLng(37.5640984, 126.9712268))
    .include(new LatLng(37.5651279, 126.9767904))
    .include(new LatLng(37.5625365, 126.9832241))
    .include(new LatLng(37.5585305, 126.9809297))
    .include(new LatLng(37.5590777, 126.974617))
    .build();

Kotlin

val bounds = LatLngBounds.Builder()
        .include(LatLng(37.5640984, 126.9712268))
        .include(LatLng(37.5651279, 126.9767904))
        .include(LatLng(37.5625365, 126.9832241))
        .include(LatLng(37.5585305, 126.9809297))
        .include(LatLng(37.5590777, 126.974617))
        .build()

results matching ""

    No results matching ""