Spec-Zone.ru › Qt 5.9

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

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

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

Карты

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

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

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

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

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

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

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

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

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

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

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

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

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/qt-5.9/location-maps-qml.html

Spec-Zone.ru

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