지도 및 내비게이션(QML)
지도 및 내비게이션은 지도에 지리 정보를 표시하고 지도 오버레이 개체 및 디스플레이 자체와 사용자가 상호 작용할 수 있는 QtQuick 사용자 인터페이스 유형을 제공합니다. 또한 지오코딩(주소에서 지리적 좌표 찾기) 및 내비게이션(운전 및 도보 길 찾기 포함)을 위한 유틸리티도 포함되어 있습니다.
내비게이션을 수행하려면 route출발지에서 목적지까지의 경로가 필요합니다. 이러한 경로는 세그먼트로 구성되며, 각 routeSegment 은 내비게이션 하위 작업으로 간주될 수 있습니다(예: "100m 주행" 또는 "좌회전"). 각 세그먼트의 시작과 끝은 경유지, 즉 여정의 한 부분입니다.
API의 일반적인 사용 사례는 레스토랑과 같은 특정 유형의 장소를 찾는 사용자로, 사용자가 지도 애플리케이션에 검색 문자열을 입력하면 기기 '근처'에 있는 레스토랑의 결과 목록이 표시됩니다. 그런 다음 애플리케이션을 사용하여 이동에 도움이 되거나 방해가 될 수 있는 환경의 기능에 따라 최적화된 경로를 사용하여 선택한 목적지로 이동할 수 있습니다. 그런 다음 현재 위치를 통해 사용자의 진행 상황을 모니터링하면서 내비게이션이 진행됩니다.
이러한 유형은 QML 포지셔닝 API의 API 개념과 유형을 기반으로 합니다. 지도 및 내비게이션 유형에 대한 자세한 소개는 지도 및 내비게이션 튜토리얼에서 확인할 수 있습니다.
지도
지도 표시하기
지도를 표시하는 것은 Map QML 유형을 사용하여 수행됩니다. 지도 유형은 MapView QML 유형을 통해 사용자 상호작용을 지원합니다. 지도 개체는 OpenGL(ES)을 사용하여 화면에 지도를 그리며, 사용 가능한 경우 하드웨어 가속 렌더링을 허용합니다.
주요 유형
Plugin | 위치 기반 서비스 플러그인은 지도 데이터를 포함한 데이터를 제공한 다음 지도 개체에 표시합니다. |
Map | QtQuick 항목을 사용하여 화면에 지도를 표시할 수 있습니다. |
MapView | 지도에서 패닝, 플릭 및 핀치 투 줌 제스처를 위한 상호 작용 도우미. |
표시할 지도 데이터에 액세스하려면 클라이언트가 Map 유형을 사용하기 전에 Plugin 객체를 만들어야 합니다.
맵에 객체 배치하기(맵 오버레이 객체)
지도에는 지도 표면에 정보를 표시하는 데 사용되는 지도 오버레이 객체를 포함할 수도 있습니다. 미리 정의된 기본 지도 오버레이 객체 세트와 표준 QtQuick 항목을 포함할 수 있는 MapQuickItem 유형을 사용하여 사용자 지정 지도 오버레이 객체를 구현할 수 있는 기능이 있습니다.
주요 유형
MapCircle | 지리적 원(중심으로부터 설정된 거리에 있는 모든 점)(선택적으로 테두리가 있는 경우). |
MapRectangle | 왼쪽 상단 및 오른쪽 하단이 coordinate 유형으로 지정된 직사각형(선택적으로 테두리가 있는 경우). |
MapPolygon | 임의의 목록 coordinates 으로 구성된 다각형. |
MapPolyline | 임의의 coordinates 목록으로 구성된 폴리라인. |
MapQuickItem | 임의의 QtQuick 항목을 맵 오버레이 개체로 변환합니다. MapQuickItem 은 사용자 지정 맵 오버레이 개체를 지정하는 데 사용할 수 있습니다. |
맵 오버레이 객체를 사용한 모델 뷰 디자인
QtQuick 모델의 콘텐츠(예: ListModel 항목)를 기반으로 맵 오버레이 객체를 자동으로 생성하려면 MapItemView 유형을 사용할 수 있습니다. 이 유형은 모든 맵 오버레이 개체를 델리게이트로 사용할 수 있으며 Map 내에서만 만들 수 있습니다.
주요 유형
MapItemView | 모델에서 제공한 데이터를 기반으로 지도 오버레이 객체로 맵을 채웁니다. |
맵 오버레이 객체와의 상호 작용
디스플레이에 표시되는 모양에 영향을 주는 지도 오버레이 개체의 속성은 언제든지 변경할 수 있으며, 많은 속성은 애니메이션에도 사용할 수 있습니다. MapPolygon 및 MapPolyline 과 같은 좌표 기반 맵 오버레이 개체에 애니메이션을 적용하는 것은 아직 사용할 수 없습니다.
지오코딩 - 주소를 좌표로 또는 그 반대로 변환하기
지오코딩은 지리적 좌표를 주소로 또는 그 반대로 변환하는 작업입니다. 이러한 번역은 일반적으로 소스 데이터를 서버로 전송하여 번역을 수행하고 결과를 반환하지만, 일부 위치 기반 서비스 제공업체( plugins )는 원격 서버로 데이터를 전송하지 않고도 일부 지오코딩 기능을 제공할 수 있습니다. 번역의 가용성과 정확도는 일반적으로 번역되는 위치 또는 주소에 따라 달라지는데, 지구의 여러 지역이 다양한 정확도로 매핑되어 있기 때문입니다.
QML의 지오코딩 쿼리는 GeocodeModel 유형을 사용하여 수행됩니다. 주소-좌표 쿼리의 경우 query
속성을 Address 개체 또는 검색할 주소의 텍스트 형식이 포함된 문자열로 설정할 수 있습니다. 반대로 수행하려면 동일한 속성을 coordinate 대신에 설정할 수 있습니다. 결과는 모델의 콘텐츠에서 확인할 수 있습니다.
키 유형
Plugin | 위치 기반 서비스 플러그인은 지오코딩 번역 결과를 포함한 데이터를 제공하여 GeocodeModel 을 통해 클라이언트에 노출됩니다. |
GeocodeModel | 플러그인에서 지오코딩 번역을 쿼리하고 모델의 인덱스를 통해 결과에 대한 액세스를 제공합니다. |
Address | 지오코딩 쿼리 및 결과에 사용할 구조화된 주소입니다. |
클라이언트는 GeocodeModel 객체를 사용하기 전에 Plugin 객체를 만들어야 합니다. 이렇게 하면 지오코딩 번역 서비스에 액세스하여 데이터를 표시할 수 있습니다.
라우팅 및 탐색
라우팅은 지도에서 한 지점에서 다른 지점까지 탐색 가능한 경로를 결정하는 것입니다. 다리, 수로 등과 같이 내비게이션을 돕거나 방해하는 기능을 인식하는 지도가 주어지면 여정을 구성하는 일련의 세그먼트를 구성할 수 있습니다. 이러한 routeSegment세그먼트가 단순하다면 세그먼트 사이의 연결 지점( routeManeuver)에 내비게이션 정보를 추가할 수 있습니다.
주요 유형
route | 탐색할 전체 경로입니다. |
routeSegment | 경로의 개별 구성 요소. |
routeManeuver | 세그먼트를 연결하는 내비게이션 정보. |
RouteModel | 경로 정보를 제공하기 위해 백엔드에 요청하는 수단. |
© 2025 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.