Пакет flutter_map | OpenStreetMap - бесплатные карты для Flutter
21.04.2019Если вам нужны карты, бесплатно, быстро и сейчас. То стоит обратить свое внимание на проект OpenStreetMap.!
OpenStreetMap является картой мира, созданной такими же людьми, как и вы, и может свободно использоваться под открытой лицензией.
Для отображения тайловых карт удобен пакет flutter_map , вместе с этим пакетом нужно подключить еще пакет latlong Подключение в файле зависимостей pubspec.yaml:
dependencies:
flutter_map: any #последния версия пакета
latlong: 0.6.1 #этот пакет нужно подключить для вызова объекта LatLng
Подключение в файле .dart:
import 'package:flutter_map/flutter_map.dart';
import 'package:latlong/latlong.dart';
Пример вставки виджета с картой
Widget build(BuildContext context) {
return new FlutterMap(
options: new MapOptions(
center: new LatLng(51.5, -0.09),
zoom: 13.0,
),
layers: [
new TileLayerOptions(
urlTemplate: "https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}@2x.png?access_token={accessToken}",
additionalOptions: {
'accessToken': '<PUT_ACCESS_TOKEN_HERE>',
'id': 'mapbox.streets',
},
),
new MarkerLayerOptions(
markers: [
new Marker(
width: 80.0,
height: 80.0,
point: new LatLng(51.5, -0.09),
builder: (ctx) => new Container(child: new FlutterLogo()))
])]);
}
Для использования карт, вам нужен сервер карт работающий с OpenStreetMap. Такой сервер можно создать самим или зарегистрироваться и получить доступ на существующих картографических сервисах. Но есть и открытые проекты, к примеру http://maps.sputnik.ru
Условия использования АПИ Карт Спутник смотрите на официальном сайте http://api.sputnik.ru/maps/
FlutterMap(
options: MapOptions(
center: LatLng(59.939095, 30.315868),
zoom: 10.0,
minZoom: 8,
maxZoom: 16),
layers: [
TileLayerOptions(
urlTemplate: "http://tiles.maps.sputnik.ru/{z}/{x}/{y}.png",
)])