Начало работы

Flutter: iOS и Android

UMapView, управление камерой и клиенты поиска и маршрутов.

Установка и запуск

Терминал
flutter pub add umap_flutter
flutter run --dart-define=UMAP_STYLE_URL=YOUR_STYLE_URL --dart-define=UMAP_ACCESS_TOKEN=YOUR_ACCESS_TOKEN

Карта

UMapView использует встроенный WebGL-движок в системном WebView. Поддерживаются iOS и Android. Превью в этой документации показывает сцену карты в браузере; Dart-код запускайте в Flutter-приложении.

import { createMap } from "@umap-llc/map-react";
// HTML: <div id="map" style="height:480px;position:relative"></div>
const map = createMap({
  container: "map",
  style: "YOUR_STYLE_URL",
  accessToken: "YOUR_ACCESS_TOKEN",
  center: [71.43045, 51.12829],
  zoom: 15,
});
map.on("load", () => console.log("Карта готова"));
map.on("error", ({ error }) => console.error(error.message));
// При закрытии страницы вашего SPA:
// map.remove();

Камера и свои данные

На закрытии экрана отменяйте свои таймеры и запросы. Сам UMapView освобождает карту автоматически. При смене styleUrl или accessToken создаётся новая карта: добавьте свои слои повторно в onLoad.

FlutterРезультат
UMapController.flyTo / fitBoundsFuture<void>; команда перемещает камеру, окончание движения приходит в onCameraChanged.
addSource / addLayer / setData / setFilterFuture<void>; завершается после обработки команды движком. Ошибка приходит в Future.
queryFeatures(point, layers: …)Future<List<Map<String,dynamic>>>: геометрия и свойства найденных объектов.
addHeatmap / addClusters / addImageДобавляют визуализацию поверх карты.
setTerrainFromGeoTIFFЗагружает DEM; передайте null для отключения.

Примеры

Адрес офиса →Пункты выдачи →Поиск →Маршруты →