Spec-Zone.ru › Qt 5.11

Карты и навигация (QML)

Карты и навигация предоставляет типы пользовательского интерфейса QtQuick для отображения географической информации на карте, а также для взаимодействия пользователя с объектами наложения на карту и самим отображением. Он также содержит утилиты для геокодирования (поиск географических координат по адресу) и навигации (включая маршруты на автомобиле и пешком).

Он основан на концепциях и типах API в QML API позиционирования. Более практическое введение в типы Карты и навигации можно найти в учебнике по картам и навигации.

Карты

Отображение карт

Отображение карты выполняется с помощью типов QML Map. Тип Map поддерживает взаимодействие пользователя через тип QML MapGestureArea. Объект Map рисует карту на экране с использованием OpenGL (ES), что позволяет использовать ускорение аппаратного рендеринга при его наличии.

Ключевые типы

Плагин Плагин служб расположения предоставляет данные, включая данные карты, которые затем отображаются в объекте Map.
Карта Элемент QtQuick для отображения карты на экране.
MapGestureArea Помощник для взаимодействия при панорамировании, отскоке и масштабировании двумя пальцами на карте.

Обратите внимание, что клиент должен создать объект Плагин перед использованием типа Карта, чтобы получить доступ к данным карты для отображения.

Размещение объектов на карте (объекты наложения на карту)

Карты также могут содержать объекты наложения на карту, которые используются для отображения информации на ее поверхности. Существует набор основных предопределенных объектов наложения на карту, а также возможность реализовать пользовательские объекты наложения на карту с помощью типа MapQuickItem, который может содержать любой стандартный элемент QtQuick.

Ключевые типы

MapCircle Географическая окружность (все точки на заданном расстоянии от центра), необязательно с границей.
MapRectangle Прямоугольник, верхняя левая и нижняя правая точки которого заданы как типы координат, необязательно с границей.
MapPolygon Многоугольник, образованный произвольным списком координат.
MapPolyline Полилиния, образованная произвольным списком координат.
MapQuickItem Преобразует любой произвольный элемент QtQuick в объект наложения на карту. MapQuickItem — это инструмент для задания пользовательских объектов наложения на карту.

Проектирование модели-представления с объектами наложения на карту

Для автоматического создания объектов наложения на карту на основе содержимого модели QtQuick (например, элемента ListModel) доступен тип MapItemView. Он принимает любой объект наложения на карту в качестве своего делегата и может создаваться только в рамках Map.

Ключевые типы

MapItemView Заполняет карту объектами наложения на карту на основе данных, предоставляемых моделью.

Взаимодействие с объектами наложения на карту

Свойства объектов наложения на карту, влияющие на их отображение, можно изменять в любое время, и многие из них также можно использовать в анимациях. Анимация координатно-базированных объектов наложения на карту, таких как MapPolygon и MapPolyline, пока не доступна.

Геокодирование — Адрес в координаты и наоборот

Геокодирование — это преобразование географических координат в адреса или наоборот. Такое преобразование обычно включает отправку исходных данных на сервер, который выполняет преобразование и возвращает результаты, хотя некоторые плагины служб расположения могут обеспечить некоторую функциональность геокодирования без отправки данных на удаленный сервер. Доступность и точность преобразования обычно зависят от местоположения или адреса, так как различные области Земли отображаются с разной степенью точности.

Запрос на геокодирование в QML выполняется с помощью типа GeocodeModel. Для запроса «адрес в координаты» его свойство query можно установить либо на объект Address, либо на строку, содержащую текстовую форму адреса для поиска. Для выполнения обратного преобразования то же свойство можно установить на координату вместо этого. Результаты становятся доступными в содержимом модели.

Ключевые типы

Плагин Плагин служб расположения предоставляет данные, включая результаты преобразования геокодирования, которые предоставляются клиентам через GeocodeModel.
GeocodeModel Запрашивает у плагина преобразования геокодирования и предоставляет доступ к результатам по индексам в модели.
Адрес Структурированный адрес для использования в запросах и результатах геокодирования.

Обратите внимание, что клиент должен создать объект Плагин перед использованием объекта GeocodeModel. Это позволит получить доступ к службам преобразования геокодирования и, следовательно, к данным для отображения.

Маршрутизация и навигация

Маршрутизация — это определение навигационного пути от одной точки к другой на карте. Учитывая карту, которая осведомлена о факторах, которые помогают или мешают навигации, таких как мосты, водные пути и так далее, можно построить ряд сегментов, составляющих путешествие. Если эти RouteSegment просты, то мы можем добавить информацию о навигации в соединительных точках, RouteManeuver между сегментами.

Ключевые типы

Маршрут Весь путь, который нужно пройти.
RouteSegment Отдельные компоненты маршрута.
RouteManeuver Информация о навигации, которая соединяет сегменты.
RouteModel Средство для отправки запросов на сервер для получения маршрутной информации.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/location-maps-qml.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API