-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathmapbox.dart
88 lines (82 loc) · 2.56 KB
/
mapbox.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
import 'package:flutter/material.dart';
import 'package:universe/universe.dart';
import 'package:example/src/dropdown.dart';
import '../shared.dart';
class MapBox extends StatefulWidget {
const MapBox({super.key});
@override
State<MapBox> createState() => _MapBoxState();
}
class _MapBoxState extends State<MapBox> {
MapBoxType type = MapBoxType.Street;
Scale get _scale {
if (type == MapBoxType.Satellite ||
type == MapBoxType.Hybrid ||
type == MapBoxType.Dark) {
return Scale(color: Colors.white);
}
return Scale();
}
@override
Widget build(BuildContext context) {
return U.MapBox(
// get your own access token from https://account.mapbox.com/access-tokens/
accessToken: yourAccessTokenHere,
center: [51.555158, -0.108343],
type: type,
zoom: 15,
scale: _scale,
controls: [
Align(
alignment: Alignment.bottomLeft,
child: Container(
margin: const EdgeInsets.only(left: 90, bottom: 29),
child: UDropdownButton(
value: type,
onChanged: (MapBoxType? chosen) {
setState(() {
if (chosen != null) {
type = chosen;
}
});
},
items: const [
DropdownMenuItem(
value: MapBoxType.Basic,
child: Text('Basic'),
),
DropdownMenuItem(
value: MapBoxType.Street,
child: Text('Street'),
),
DropdownMenuItem(
value: MapBoxType.Satellite,
child: Text('Satellite'),
),
DropdownMenuItem(
value: MapBoxType.Hybrid,
child: Text('Hybrid'),
),
DropdownMenuItem(
value: MapBoxType.Outdoors,
child: Text('Outdoors'),
),
DropdownMenuItem(
value: MapBoxType.Dark,
child: Text('Dark'),
),
DropdownMenuItem(
value: MapBoxType.Light,
child: Text('Light'),
),
DropdownMenuItem(
value: MapBoxType.Bright,
child: Text('Bright'),
),
],
),
),
)
]);
}
}