Map QML Type
지도 유형은 지도를 표시합니다. 더 보기...
Import Statement: | import QtLocation 6.8 |
Since: | QtLocation 5.0 |
- 상속된 멤버를 포함한 모든 멤버 목록
- 맵은 QML 맵 플러그인의 일부입니다.
속성
- activeMapType : mapType
- bearing : real
(since QtLocation 5.9)
- center : coordinate
- color : color
- copyrightsVisible : bool
- error : enumeration
- errorString : string
- fieldOfView : real
(since QtLocation 5.9)
- mapItems : list<MapItem>
- mapReady : bool
- maximumFieldOfView : real
(since QtLocation 5.9)
- maximumTilt : real
(since QtLocation 5.9)
- maximumZoomLevel : real
- minimumFieldOfView : real
(since QtLocation 5.9)
- minimumTilt : real
(since QtLocation 5.9)
- minimumZoomLevel : real
- plugin : Plugin
- supportedMapTypes : list<mapType>
- tilt : real
(since QtLocation 5.9)
- visibleArea : rect
- visibleRegion : geoshape
- zoomLevel : real
신호
- copyrightLinkActivated(string link)
방법
- void addMapItem(MapItem item)
- void addMapItemGroup(MapItemGroup itemGroup)
- void addMapItemView(MapItemView itemView)
- void alignCoordinateToPoint(coordinate coordinate, QPointF point)
- void clearData()
- void clearMapItems()
- void fitViewportToGeoShape(geoShape, margins)
- void fitViewportToMapItems(list<MapItems> items)
- void fitViewportToVisibleMapItems()
- point fromCoordinate(coordinate coordinate, bool clipToViewPort)
- void pan(int dx, int dy)
- void prefetchData()
- void removeMapItem(MapItem item)
- void removeMapItemGroup(MapItemGroup itemGroup)
- void removeMapItemView(MapItemView itemView)
- void setBearing(real bearing, coordinate coordinate)
- coordinate toCoordinate(QPointF position, bool clipToViewPort)
상세 설명
지도 유형은 지구의 지도 또는 이미지를 표시하는 데 사용되며, 지도 표면에 연결된 대화형 객체를 표시하는 기능도 있습니다.
지구 표면을 2차원으로 시각화하는 방법에는 여러 가지가 있지만, 모두 화면의 3D 좌표(위도, 경도, 고도)와 2D 좌표(픽셀 단위의 X 및 Y) 사이의 수학적 관계인 투영을 포함합니다.
지도 데이터의 소스마다 서로 다른 투영법을 사용할 수 있으며, 지도 유형이라는 관점에서 보면 이를 하나의 교체 가능한 단위인 지도 플러그인으로 취급합니다. 지도 플러그인은 데이터 소스와 해당 데이터를 화면에 표시하는 데 필요한 기타 모든 세부 사항으로 구성됩니다.
현재 사용 중인 지도 플러그인은 지도 항목의 plugin 속성에 포함되어 있습니다. 지도 항목에 이미지를 표시하려면 이 속성을 설정해야 합니다. 사용하기에 적합한 플러그인을 검색하는 방법에 대한 설명은 Plugin 유형을 참조하세요.
지도 항목에 표시되는 지리적 영역을 해당 뷰포트라고 하며, 이는 center 및 zoomLevel 속성에 의해 정의됩니다. center 속성은 뷰포트의 중심을 지정하는 coordinate 을 포함하며, zoomLevel 은 지도의 배율을 제어합니다. 각 속성의 값에 대한 자세한 내용은 각 속성을 참조하세요.
지도가 표시되면 표시되는 각 가능한 지리적 좌표는 화면의 일부 픽셀 X 및 Y 좌표에 매핑됩니다. 이 두 좌표 간의 변환을 수행하기 위해 지도는 일반적인 유틸리티인 toCoordinate 및 fromCoordinate 함수를 제공합니다.
지도 객체
지도 관련 객체는 Qt Quick 에서 지도 객체 본문 내에 선언할 수 있으며 자동으로 지도에 표시됩니다. 프로그래밍 방식으로 객체를 추가하려면 먼저 맵을 부모로 하여 객체를 생성해야 합니다(예: Component::createObject 에 대한 인수로). 그런 다음 이 객체의 유형이 MapCircle, MapRectangle, MapPolyline, MapPolygon, MapRoute 또는 MapQuickItem 중 하나인 경우 맵에서 addMapItem 메서드를 호출합니다. 반대로 위의 유형의 맵 객체를 맵에서 제거하기 위한 removeMapItem 메서드도 존재합니다.
맵 객체를 이동하거나 크기를 조정하거나 모양을 변경하는 것은 일반적으로 맵 자체와 특별한 상호 작용이 필요하지 않으며, 맵 객체에서 이러한 속성을 변경하면 자동으로 표시가 업데이트됩니다.
성능
지도는 OpenGL(ES)과 Qt Scene Graph 스택을 사용하여 렌더링되므로 GL 가속 하드웨어를 사용할 수 있는 경우 성능이 매우 우수합니다.
'온라인' 맵의 경우 네트워크 대역폭과 지연 시간이 사용자의 성능에 대한 인식을 좌우하는 주요 요인이 될 수 있습니다. 이를 완화하기 위해 광범위한 캐싱이 수행되지만 이러한 완화가 항상 완벽한 것은 아닙니다.
일반적으로 다각형 및 폴리라인과 같이 정점이 많은 크고 복잡한 맵 항목은 UI 성능에 부정적인 영향을 미칠 수 있습니다.
사용 예시
다음 스니펫은 간단한 맵과 이를 사용하는 데 필요한 플러그인 유형을 보여줍니다. 지도는 노르웨이 오슬로를 중심으로 하고 있으며 줌 레벨은 14입니다.
import QtQuick import QtLocation import QtPositioning Window { ... Plugin { id: mapPlugin name: "osm" } Map { id: map anchors.fill: parent plugin: mapPlugin center: QtPositioning.coordinate(59.91, 10.75) // Oslo zoomLevel: 14 property geoCoordinate startCentroid PinchHandler { id: pinch target: null onActiveChanged: if (active) { map.startCentroid = map.toCoordinate(pinch.centroid.position, false) } onScaleChanged: (delta) => { map.zoomLevel += Math.log2(delta) map.alignCoordinateToPoint(map.startCentroid, pinch.centroid.position) } onRotationChanged: (delta) => { map.bearing -= delta map.alignCoordinateToPoint(map.startCentroid, pinch.centroid.position) } grabPermissions: PointerHandler.TakeOverForbidden } WheelHandler { id: wheel // workaround for QTBUG-87646 / QTBUG-112394 / QTBUG-112432: // Magic Mouse pretends to be a trackpad but doesn't work with PinchHandler // and we don't yet distinguish mice and trackpads on Wayland either acceptedDevices: Qt.platform.pluginName === "cocoa" || Qt.platform.pluginName === "wayland" ? PointerDevice.Mouse | PointerDevice.TouchPad : PointerDevice.Mouse rotationScale: 1/120 property: "zoomLevel" } DragHandler { id: drag target: null onTranslationChanged: (delta) => map.pan(-delta.x, -delta.y) } Shortcut { enabled: map.zoomLevel < map.maximumZoomLevel sequence: StandardKey.ZoomIn onActivated: map.zoomLevel = Math.round(map.zoomLevel + 1) } Shortcut { enabled: map.zoomLevel > map.minimumZoomLevel sequence: StandardKey.ZoomOut onActivated: map.zoomLevel = Math.round(map.zoomLevel - 1) } } }
속성 문서
activeMapType : mapType |
현재 활성화된 map type 에 액세스합니다.
이 속성은 활성 map type 을 변경하도록 설정할 수 있습니다. 가능한 값은 supportedMapTypes 속성을 참조하세요.
mapType 을참조하세요 .
bearing : real |
이 속성은 지도의 방위를 저장합니다. 기본값은 0입니다. 지도에 사용되는 플러그인이 방위를 지원하는 경우 이 값의 유효한 범위는 0에서 360 사이입니다. 맵에 사용된 플러그인이 방위를 지원하지 않는 경우 이 속성을 변경해도 효과가 없습니다.
이 속성은 QtLocation 5.9에 도입되었습니다.
center : coordinate |
이 속성은 매핑 뷰포트의 중심을 차지하는 좌표를 보유합니다. 잘못된 중심 좌표는 무시됩니다.
기본값은 임의의 유효한 좌표입니다.
color : color |
이 속성은 맵 요소의 배경색을 보유합니다.
copyrightsVisible : bool |
이 속성은 저작권 고지의 가시성을 유지합니다. 알림은 일반적으로 왼쪽 하단에 표시됩니다. 기본적으로 이 속성은 true
로 설정되어 있습니다.
참고: 많은 지도 제공업체는 이용 약관의 일부로 고지를 표시하도록 요구합니다. 이 공지를 끄기 전에 관련 제공업체 설명서를 참조하세요.
error : enumeration |
이 읽기 전용 속성은 마지막으로 발생한 매핑 서비스 제공업체 오류를 보관합니다.
- Map.NoError - 오류가 발생하지 않았습니다.
- 맵 플러그인 속성이 설정되지 않았거나 플러그인과 연결된 매핑 관리자가 없습니다.
- Map.UnknownParameterError - 플러그인이 제공된 매개변수 중 하나를 인식하지 못했습니다.
- Map.MissingRequiredParameterError - 플러그인이 예상한 매개변수 중 하나를 찾지 못했습니다.
- Map.ConnectionError - 플러그인이 백엔드 서비스 또는 데이터베이스에 연결할 수 없습니다.
QGeoServiceProvider::Error 를참조하세요 .
errorString : string |
이 읽기 전용 속성은 최신 매핑 공급자 오류의 텍스트 표시를 보유합니다. 오류가 발생하지 않으면 빈 문자열이 반환됩니다.
연관된 텍스트 표현이 없는 오류가 발생한 경우에도 빈 문자열이 반환될 수 있습니다.
QGeoServiceProvider::errorString()도 참조하세요 .
fieldOfView : real |
이 속성은 지도를 보는 데 사용되는 카메라의 시야를 도 단위로 보유합니다. 지도의 플러그인 속성이 설정되어 있지 않거나 플러그인이 매핑을 지원하지 않는 경우 이 값은 45도입니다.
이 값을 변경하면 카메라와 지도 사이의 거리도 암시적으로 변경되므로 기울기 각도가 0도일 때 결과 이미지는 이 속성에 사용된 모든 값에 대해 동일합니다.
이 매개 변수에 대한 자세한 내용은 시야 및 화각에 대한 Wikipedia 문서를 참조하세요.
이 속성은 QtLocation 5.9에 도입되었습니다.
minimumFieldOfView 및 maximumFieldOfView 을참조하세요 .
mapItems : list<MapItem> |
특정 순서 없이 모든 지도 항목의 목록을 반환합니다. 이러한 항목에는 유형 선언의 일부로 정적으로 선언된 항목과 동적 항목이 포함됩니다 (addMapItem, MapItemView).
addMapItem, removeMapItem, clearMapItems 를참조하세요 .
mapReady : bool |
이 속성은 맵이 성공적으로 초기화되어 사용할 준비가 되었는지 여부를 보유합니다. fromCoordinate 및 toCoordinate 과 같은 일부 메서드는 맵이 준비되기 전에는 작동하지 않습니다. Map 의 아키텍처로 인해 모든 것이 예상대로 작동하는지 확인하기 위해 Component.onCompleted 대신 이 속성에 대해 방출되는 신호를 사용하는 것이 좋습니다.
maximumFieldOfView : real |
이 속성은 맵에 유효한 최대 시야각을 도 단위로 보유합니다.
사용된 plugin 의 최소 기울기 시야각이 이 속성의 상한입니다. plugin 속성이 설정되지 않았거나 플러그인이 매핑을 지원하지 않는 경우 이 속성은 179
입니다.
이 속성은 QtLocation 5.9에 도입되었습니다.
fieldOfView 및 minimumFieldOfView 을참조하십시오 .
maximumTilt : real |
이 속성은 맵에 유효한 최대 기울기를 도 단위로 저장합니다.
사용된 plugin 에 정의된 최대 기울기가 이 속성의 상한입니다. plugin 속성이 설정되지 않았거나 플러그인이 매핑을 지원하지 않는 경우 이 속성은 89.5
입니다.
QtLocation 5.12부터 플러그인은 현재 줌 레벨에 따라 이 값을 추가로 제한할 수 있습니다.
이 속성은 QtLocation 5.9에서 도입되었습니다.
tilt 및 minimumTilt 을참조하십시오 .
maximumZoomLevel : real |
minimumFieldOfView : real |
이 속성은 맵에 유효한 최소 시야각을 도 단위로 보유합니다.
사용된 plugin 의 최소 기울기 시야각은 이 속성의 하한입니다. plugin 속성이 설정되지 않았거나 플러그인이 매핑을 지원하지 않는 경우 이 속성은 1
입니다.
이 속성은 QtLocation 5.9에 도입되었습니다.
fieldOfView 및 maximumFieldOfView 을참조하십시오 .
minimumTilt : real |
이 속성은 맵에 유효한 최소 기울기를 도 단위로 저장합니다.
사용된 plugin 에 정의된 최소 기울기는 이 속성의 하한입니다. plugin 속성이 설정되어 있지 않거나 플러그인이 매핑을 지원하지 않는 경우 이 속성은 0
입니다.
QtLocation 5.12부터 플러그인은 현재 줌 레벨에 따라 이 값을 추가로 제한할 수 있습니다.
이 속성은 QtLocation 5.9에서 도입되었습니다.
tilt 및 maximumTilt 을참조하십시오 .
minimumZoomLevel : real |
plugin : Plugin |
이 속성은 매핑 기능을 제공하는 플러그인을 보유합니다.
이 속성은 일회성 속성입니다. 맵에 플러그인이 연결되면 플러그인을 수정하려고 시도한 모든 시도는 무시됩니다.
이 읽기 전용 속성에는 이 맵에서 지원하는 map types 집합이 저장됩니다.
activeMapType 를참조하세요 .
tilt : real |
이 속성은 맵의 기울기를 도 단위로 저장합니다. 기본값은 0입니다. 이 값의 유효한 범위는 [ minimumTilt, maximumTilt ]입니다. 맵에 사용된 플러그인이 기울기를 지원하지 않는 경우 이 속성을 변경해도 효과가 없습니다.
이 속성은 QtLocation 5.9에 도입되었습니다.
minimumTilt 및 maximumTilt 을참조하십시오 .
visibleArea : rect |
이 속성은 맵 QML 요소 내부의 표시 영역을 보유합니다. 좌표가 Map 요소에 상대적인 직사각형입니다. 그 크기는 Map 요소의 크기에 고정됩니다. 가시 영역이 null이면 맵 전체가 표시됨을 의미합니다.
visibleRegion : geoshape |
zoomLevel: real |
이 속성은 맵의 확대/축소 수준을 보유합니다.
줌 레벨의 값이 클수록 더 자세한 정보를 제공합니다. 확대/축소 수준은 항상 음수가 아닙니다. 기본값은 8.0입니다. 사용 중인 플러그인에 따라 타일을 사용할 수 있는 범위를 나타내는 [minimumZoomLevel, maximumZoomLevel] 범위를 벗어난 값이 허용되거나 제한될 수 있습니다.
신호 문서
copyrightLinkActivated(string link) |
이 신호는 사용자가 저작권 고지에서 link 을 클릭하면 발생합니다. 애플리케이션은 브라우저에서 링크를 열거나 사용자에게 해당 콘텐츠를 표시해야 합니다.
참고: 해당 핸들러는 onCopyrightLinkActivated
입니다.
메서드 문서
void addMapItem(MapItem item) |
지정된 item 을 맵에 추가합니다(예: MapQuickItem, MapCircle). 객체가 이미 맵에 있는 경우 다시 추가되지 않습니다.
예를 들어 현재 위치를 나타내는 MapCircle 이 있는 경우를 생각해 보겠습니다:
import QtQuick import QtPositioning import QtLocation PositionSource { id: positionSource } Map { id: map property MapCircle circle Component.onCompleted: { circle = Qt.createQmlObject('import QtLocation; MapCircle {}', page) circle.center = positionSource.position.coordinate circle.radius = 5000.0 circle.color = 'green' circle.border.width = 3 map.addMapItem(circle) } }
참고: 이 메서드에서는 MapItemView를 추가할 수 없습니다.
mapItems, removeMapItem, clearMapItems 를참조하세요 .
void addMapItemGroup(MapItemGroup itemGroup) |
주어진 itemGroup 에 포함된 맵 항목을 맵에 추가합니다(예: MapQuickItem, MapCircle).
MapItemGroup 및 removeMapItemGroup도 참조 하세요.
void addMapItemView(MapItemView itemView) |
itemView 을 맵에 추가합니다.
MapItemView 및 removeMapItemView도 참조 하세요.
void alignCoordinateToPoint(coordinate coordinate, QPointF point) |
coordinate 을 point 으로 정렬합니다. 이 메서드는 center qml 속성에서 제공하는 기능을 효과적으로 확장하여 좌표를 지도 요소의 중심이 아닌 다른 지점에 정렬할 수 있도록 합니다. 이는 장면의 중심(예: 커서)을 맵의 중앙에 정확히 배치하지 않으려는 애플리케이션에 유용합니다.
지도가 기울어져 있고 coordinate 가 카메라 뒤에 있거나 지도가 준비되지 않은 경우( mapReady 참조 ) 이 메서드를 호출해도 아무런 효과가 없습니다.
Qt 5.10에서 이 API의 릴리스는 기술 프리뷰입니다.
center 를참조하세요 .
void clearData() |
void clearMapItems() |
지도에서 모든 항목과 항목 그룹을 제거합니다.
mapItems, addMapItem, removeMapItem, addMapItemGroup, removeMapItemGroup 도참조하세요 .
void fitViewportToGeoShape(geoShape, margins) |
뷰포트를 특정 지리적 모양에 맞춥니다 geoShape. margins 은 화면 픽셀 단위입니다.
참고: 플러그인에서 사용하는 투영법이 WebMercator가 아니고 플러그인에 모양에 맞추기 기능이 없는 경우 이 메서드는 아무 작업도 수행하지 않습니다.
visibleRegion 를참조하세요 .
void fitViewportToMapItems(list<MapItems> items = {}) |
인수가 제공되지 않으면 현재 뷰포트를 모든 맵 항목의 경계에 맞춥니다. 카메라는 맵 항목의 중앙에 위치하며, 모든 맵 항목이 화면에 표시될 수 있도록 가능한 가장 큰 통합 줌 레벨로 배치됩니다. items 을 제공하면 현재 뷰포트를 지정된 맵 항목의 경계에만 맞춥니다.
참고: 이 메서드는 Qt 5.15부터 items 인수를 선택적으로 사용할 수 있게 되었습니다. 이전 릴리스에서는 이 메서드가 모든 지도 항목에 지도를 맞췄습니다.
fitViewportToVisibleMapItems 를참조하십시오 .
void fitViewportToVisibleMapItems() |
현재 뷰포트를 보이는 모든 지도 항목의 경계에 맞춥니다. 카메라는 지도 항목의 중앙에 위치하며, 모든 지도 항목이 화면에 표시될 수 있도록 가능한 가장 큰 통합 줌 레벨로 배치됩니다.
fitViewportToMapItems 를참조하세요 .
point fromCoordinate(coordinate coordinate, bool clipToViewPort) |
coordinate 에 해당하는 지도 항목을 기준으로 한 위치를 반환합니다.
clipToViewPort 이 true
이거나 제공되지 않은 경우, coordinate 이 현재 뷰포트 내에 있지 않으면 잘못된 QPointF 을 반환합니다.
void prefetchData() |
이 유휴 기간 동안 지도를 미리 가져올 수 있는 선택적 힌트
void removeMapItem(MapItem item) |
지정된 item 을 맵에서 제거합니다(예: MapQuickItem, MapCircle). MapItem이 존재하지 않거나 이전에 맵에 추가되지 않은 경우 이 메서드는 아무 작업도 수행하지 않습니다.
mapItems, addMapItem, clearMapItems 를참조하세요 .
void removeMapItemGroup(MapItemGroup itemGroup) |
itemGroup 및 여기에 포함된 항목을 맵에서 제거합니다.
MapItemGroup 및 addMapItemGroup도 참조 하세요.
void removeMapItemView(MapItemView itemView) |
itemView 및 에 의해 인스턴스화된 항목을 맵에서 제거합니다.
MapItemView 및 addMapItemView도 참조 하세요.
void setBearing(real bearing, coordinate coordinate) |
지도의 방위를 bearing 로 설정하고 coordinate 를 중심으로 회전합니다. 맵에 사용된 플러그인이 방위를 지원하는 경우 bearing 의 유효한 범위는 0에서 360 사이입니다. 지도에 사용된 플러그인이 방위를 지원하지 않거나 지도가 기울어져 coordinate 이 카메라 뒤에 있는 경우 또는 지도가 준비되지 않은 경우( mapReady 참조 ) 이 메서드를 호출해도 아무런 효과가 없습니다.
이 API는 Qt 5.10에서 기술 프리뷰 버전으로 출시되었습니다.
coordinate toCoordinate(QPointF position, bool clipToViewPort) |
지도 항목을 기준으로 position 에 해당하는 좌표를 반환합니다.
clipToViewPort 이 true
이거나, position 이 현재 뷰포트 내에 있지 않은 경우 잘못된 좌표를 반환합니다.
© 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.