이 페이지에서

지도 및 내비게이션 (QML)

지도 및 내비게이션은 지도에 지리 정보를 표시하고, 사용자가 지도 오버레이 객체 및 표시 화면 자체와 상호 작용할 수 있도록 하는 QtQuick 사용자 인터페이스 유형을 제공합니다. 또한 지오코딩(주소로부터 지리적 좌표를 찾는 것) 및 내비게이션(운전 및 도보 길찾기 포함)을 위한 유틸리티도 포함되어 있습니다.

내비게이션을 수행하려면 출발지에서 목적지까지의 경로( route)가 필요합니다. 이러한 경로는 세그먼트(segments)로 구성되며, 각 세그먼트( routeSegment )는 “100미터 주행”이나 “좌회전”과 같이 내비게이션의 하위 작업으로 간주될 수 있습니다. 각 세그먼트의 시작점과 끝점은 경유지( waypoint), 즉 여정의 한 구간을 나타냅니다.

이 API의 대표적인 사용 사례는 사용자가 식당과 같은 특정 유형의 장소를 찾는 경우입니다. 사용자는 지도 애플리케이션에 검색어를 입력하면 기기 “근처”에 있는 식당 목록이 표시됩니다. 그런 다음 이 애플리케이션을 사용하여 여정에 도움이 되거나 방해가 될 수 있는 환경적 요인에 따라 최적화된 경로를 통해 선택한 목적지까지 내비게이션을 진행할 수 있습니다. 이후 내비게이션은 현재 위치를 통해 사용자의 진행 상황을 모니터링하며 진행됩니다.

이 타입들은 QML 위치 정보 API의 개념과 타입을 기반으로 합니다. 지도 및 내비게이션 타입에 대한 보다 실습 중심의 소개는 지도 및 내비게이션 튜토리얼에서 확인할 수 있습니다.

지도

지도 표시

지도 표시는 ` Map ` QML 타입을 사용하여 수행됩니다. `Map` 타입은 ` MapView ` QML 타입을 통해 사용자 상호작용을 지원합니다. `Map` 객체는 OpenGL(ES)을 사용하여 화면에 지도를 그리며, 가능한 경우 하드웨어 가속 렌더링을 지원합니다.

주요 유형

Plugin위치 기반 서비스 플러그인은 지도 데이터를 포함한 데이터를 제공하며, 이 데이터는 Map 객체에 표시됩니다.
MapQtQuick 화면에 지도를 표시하기 위한 항목.
MapViewMap에서 패닝, 플릭, 핀치-투-줌 제스처를 위한 상호작용 헬퍼입니다.

표시할 지도 데이터에 액세스하려면 클라이언트가 Map 유형을 사용하기 전에 Plugin 객체를 생성해야 합니다.

지도에 객체 배치하기(지도 오버레이 객체)

지도에는 표면에 정보를 표시하는 데 사용되는 지도 오버레이 객체를 포함할 수도 있습니다. 미리 정의된 기본 지도 오버레이 객체 세트가 있으며, MapQuickItem 유형을 사용하여 사용자 정의 지도 오버레이 객체를 구현할 수도 있습니다. 이 객체에는 모든 표준 QtQuick 항목을 포함할 수 있습니다.

주요 유형

MapCircle지리적 원(중심으로부터 설정된 거리 내에 있는 모든 점)으로, 선택적으로 테두리를 적용할 수 있습니다.
MapRectangle왼쪽 상단과 오른쪽 하단 점이 geoCoordinate 유형으로 지정된 사각형으로, 선택적으로 테두리를 그릴 수 있습니다.
MapPolygoncoordinates 의 임의의 목록으로 구성된 다각형입니다.
MapPolylinecoordinates 의 임의의 목록으로 구성된 폴리라인입니다.
MapQuickItem임의의 ` QtQuick ` 항목을 지도 오버레이 개체로 변환합니다. ` MapQuickItem `는 사용자 지정 지도 오버레이 개체를 지정할 수 있게 해주는 기능입니다.

지도 오버레이 객체를 활용한 모델-뷰 설계

QtQuick 모델(예: ListModel 항목)의 내용을 기반으로 지도 오버레이 객체를 자동으로 생성하려면 MapItemView 유형을 사용할 수 있습니다. 이 유형은 모든 지도 오버레이 객체를 델리게이트로 받아들이며, Map 내에서만 생성할 수 있습니다.

키 유형

MapItemView모델에서 제공하는 데이터를 기반으로 지도에 지도 오버레이 객체를 채웁니다.

지도 오버레이 객체와의 상호작용

표시 화면에 나타나는 모양에 영향을 미치는 지도 오버레이 객체의 속성은 언제든지 변경할 수 있으며, 많은 속성이 애니메이션에도 사용될 수 있습니다. MapPolygon 및 MapPolyline 와 같은 좌표 기반 지도 오버레이 객체의 애니메이션 기능은 아직 지원되지 않습니다.

지오코딩 – 주소에서 좌표로, 또는 그 반대로

지오코딩(Geocoding)은 지리적 좌표를 주소로 변환하거나 그 반대로 변환하는 것을 말합니다. 이러한 변환은 일반적으로 소스 데이터를 서버로 전송한 후, 서버에서 변환을 수행하고 결과를 반환하는 방식으로 이루어지지만, 일부 위치 기반 서비스 제공업체( plugins )는 데이터를 원격 서버로 전송하지 않고도 일부 지오코딩 기능을 제공할 수 있습니다. 변환의 가능 여부와 정확도는 일반적으로 변환 대상인 위치나 주소에 따라 달라집니다. 지구의 각 지역마다 지도 제작의 정확도가 다르기 때문입니다.

QML에서 지오코딩 쿼리는 GeocodeModel 타입을 사용하여 수행됩니다. 주소-좌표 변환 쿼리의 경우, 해당 query 속성을 Address 객체나 검색할 주소의 텍스트 형식을 포함하는 문자열로 설정할 수 있습니다. 반대의 변환을 수행하려면 동일한 속성을 geoCoordinate 로 설정하면 됩니다. 결과는 모델의 내용에 반영됩니다.

키 유형

Plugin위치 기반 서비스 플러그인은 지오코딩 변환 결과를 포함한 데이터를 제공하며, 이 데이터는 GeocodeModel 를 통해 클라이언트에 노출됩니다.
GeocodeModel플러그인에 지오코딩 변환을 쿼리하고 모델의 인덱스를 통해 결과에 대한 액세스를 제공합니다.
Address지오코딩 쿼리 및 결과에 사용되는 구조화된 주소입니다.

클라이언트는 GeocodeModel 객체를 사용하기 전에 Plugin 객체를 생성해야 합니다. 이렇게 해야 지오코딩 변환 서비스에 액세스하여 표시할 데이터를 얻을 수 있습니다.

경로 설정 및 내비게이션

경로 설정은 지도상에서 한 지점에서 다른 지점까지 이동 가능한 경로를 결정하는 것입니다. 다리, 수로 등 내비게이션을 돕거나 방해하는 지형적 특징을 인식하는 지도가 주어지면, 여정을 구성하는 일련의 세그먼트를 구축할 수 있습니다. 이러한 routeSegment가 단순한 경우, 세그먼트 간의 연결 지점인 routeManeuver에 내비게이션 정보를 추가할 수 있습니다.

주요 유형

route탐색해야 할 전체 경로.
routeSegment경로의 개별 구성 요소.
routeManeuver세그먼트를 연결하는 내비게이션 정보.
RouteModel경로 정보를 제공하기 위해 백엔드에 요청을 보내는 수단.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.