Flutter SDK
Flutter SDK позволяет добавить карту 2ГИС в ваше приложение. С помощью SDK можно отобразить карту на экране, получать информацию об объектах карты, использовать навигатор, строить маршруты и так далее.
Примеры использования SDK см. в разделе Примеры.
Картографические данные поддерживают стандарты OGC.
Вы можете использовать Flutter SDK на устройствах с операционными системами iOS, Android и Аврора.
Версии SDK
Пакеты Flutter SDK доступны в pub.dev
в двух версиях:
- Full — полная версия, которая позволяет:
- Добавлять карту в приложение и управлять ей: добавлять маркеры и геометрические фигуры, управлять движением камеры, отображать слои (например, пробки), работать со стилями карты и т. д.
- Искать объекты в справочнике: организации, здания, места и другие.
- Работать с навигатором в приложении в трёх режимах: свободная навигация, ведение по маршруту и симуляция ведения.
- Строить оптимальные маршруты на карте, в том числе внутри зданий.
- Использовать офлайн-данные.
- Map — облегчённая версия, которая позволяет:
- Добавлять карту в приложение и управлять ей: добавлять маркеры и геометрические фигуры, управлять движением камеры, отображать слои (например, пробки), работать со стилями карты и т. д.
- Искать объекты в справочнике: организации, здания, места и другие.
Важно
Использовать совместно Full и Map нельзя: это приведёт к ошибке сборки.
Получение ключей доступа
Для работы с SDK необходимо получить файл ключа dgissdk.key
: для подключения к серверам 2ГИС, получения географических данных, а также для использования офлайн-данных и навигатора. Чтобы получить файл ключа, заполните форму на dev.2gis.ru и укажите appId
приложения, для которого будет использоваться ключ.
После получения ключа инициализируйте SDK. Следуйте требованиям:
- Для одного приложения вы можете инициализировать SDK только один раз. При этом для каждого приложения используется только один ключ. Отдельные ключи требуются в следующих случаях:
- Если приложение доступно для разных операционных систем.
- Если у приложения есть несколько вариантов для одной ОС (например, приложение для водителя и приложение для пассажира).
- Если используются разные версии SDK (Full и Map).
- Значение
appId
приложения должно соответствовать значениюapp_id
в файле с ключом. - Изменение файла ключа во время работы приложения не поддерживается.
Для работы некоторых функций в SDK используются API поиска и навигации. Доступ к этим API предоставляется вместе с ключом для SDK. Использование API оплачивается дополнительно в зависимости от количества отправленных запросов (и в некоторых случаях — полученных ответов). См. список функциональностей и дополнительных API ниже.
Дополнительные API
Вы можете просматривать статистику распределения запросов к API в личном кабинете Менеджер Платформы.
Функциональность |
Используемые API |
---|---|
Создание поискового движка (класс SearchManager) |
Regions API |
Получение результатов поиска (метод SearchManager.search) |
Получение некоторой информации об объектах в доступно только при дополнительной настройке ключа за отдельную плату: см. раздел Структура данных объекта. |
Поиск объектов в справочнике по идентификатору (метод SearchManager.searchById) |
|
Формирование поисковых подсказок (метод SearchManager.suggest) |
Suggest API |
Поиск оптимального маршрута с учётом пробок (класс TrafficRouter) |
|
Запуск навигатора (метод NavigationManager.start): |
|
Поиск альтернативных маршрутов (класс AlternativeRouteSelector) |
|
Отображение маршрутов на карте (класс RouteEditorSource) |
|
Отображение пробок на карте (класс TrafficSource) |
Regions API |
Отображение дорожных событий (класс RoadEventSource) |
Regions API |
Вычисление местоположения устройства по сотовым вышкам и точкам доступа Wi-Fi (использование RadarApiSettings в Android и ru.dgis.sdk.positioning.RadarSettingsProvider ) |
Radar API |
Ключи для ОС Аврора
Для SDK ключ выписывается для определённого идентификатора приложения. Для ОС Аврора идентификатор приложения формируется по принципу "{QCoreApplication::organizationDomain()}.{QCoreApplication::applicationName()}"
.
Значение organizationDomain
указывается в файле приложения aurora/main.cpp
. Например:
int main(int argc, char * argv[])
{
aurora::Initialize(argc, argv);
aurora::EnableQtCompatibility();
// Необходимо указать для успешной проверки ключа
QCoreApplication::setOrganizationDomain("ru.mobile.sdk.app");
aurora::RegisterPlugins();
aurora::Launch();
return 0;
}
Значение applicationName
указывается в конфигурационных файлах приложения. Например:
ApplicationName=flutter_app
и:
Name: ru.dgis.flutter_app
Полные примеры файлов см. в GitHub-репозитории: ru.dgis.flutter_app.desktop и ru.dgis.flutter_app.spec.
Установка
Для всех платформ
Чтобы установить Flutter SDK на iOS, Android и Аврора, добавьте в файл pubspec.yaml
одну из следующих зависимостей.
-
Для версии SDK Full:
dependencies: flutter: sdk: flutter flutter_localizations: sdk: flutter dgis_mobile_sdk_full: # При зависимости этого пакета от реального приложения используйте: # dgis_mobile_sdk_full: ^x.y.z # См. https://dart.dev/tools/pub/dependencies#version-constraints # Приложение в примере связано с плагином, поэтому используется зависимость пути от # родительской директории, чтобы использовать текущую версию плагина. path: ../ }
-
Для версии SDK Map:
dependencies: flutter: sdk: flutter dgis_mobile_sdk_map: # При зависимости этого пакета от реального приложения используйте: # dgis_mobile_sdk_map: ^x.y.z # См. https://dart.dev/tools/pub/dependencies#version-constraints # Приложение в примере связано с плагином, поэтому используется зависимость пути от # родительской директории, чтобы использовать текущую версию плагина. path: ../
Полные примеры файлов см. в GitHub-репозитории: pubspec.yaml.
Выполните дополнительные шаги установки для Android и ОС Аврора.
Android
При сборке для Android используется бинарный артефакт в формате .aar
. Для правильного подключения добавьте репозиторий с этим артефактом в build.gradle
вашего приложения:
repositories {
maven {
url "https://artifactory.2gis.dev/sdk-maven-release"
}
}
Аврора
Для установки временно доступна только версия SDK Full.
Чтобы установить Flutter SDK:
-
Клонируйте репозиторий с SDK для версии Full.
-
Переключитесь на ветку нужной версии релиза, например версии 12.6.3.
-
Скопируйте в ваше приложение Flutter реализацию SDK для ОС Аврора.
-
В файле
CMakeLists.txt
вашего приложения включите копирование ресурсов, необходимых для корректной работы SDK:set(DGIS_DATA_DIR ${CMAKE_CURRENT_LIST_DIR}/../../aurora/data)
Полный пример файла см. в GitHub-репозитории: CMakeLists.txt.
-
Чтобы библиотека
dgis_c_bindings_linux
корректно подключалась к приложению, добавьте вrpm
приложения следующую строку:%global __requires_exclude ^lib(dgis_c_bindings_linux|dconf|flutter-embedder|maliit-glib|.+_platform_plugin)\\.so.*$
Полный пример файла см. в GitHub-репозитории: ru.dgis.flutter_app.spec.
-
Для корректной работы SDK внутри ОС Аврора добавьте следующие разрешения:
[Desktop Entry] Type=Application Name=flutter_app Comment=A new Flutter project. Icon=ru.dgis.flutter_app Exec=/usr/bin/ru.dgis.flutter_app X-Nemo-Application-Type=silica-qt5 [X-Application] Permissions=Audio;Sensors;SecureStorage;DeviceInfo;Internet;Location;UserDirs OrganizationName=ru.dgis ApplicationName=flutter_app
Полный пример файла см. в GitHub-репозитории: ru.dgis.flutter_app.desktop.