Setting the file. One moment.
Skill 04 · Mapbox Flutter Patterns
Subchapter 4.3
AGENTS.mdMarkdown3 KBView on GitHub
# pubspec.yaml
dependencies:
mapbox_maps_flutter: ^2.0.0platform :ios, '14.0' if using Pods).minSdk = 21 in android/app/build.gradle(.kts).flutter run --dart-define=ACCESS_TOKEN=pk.your_tokenconst accessToken = String.fromEnvironment('ACCESS_TOKEN');
void main() {
MapboxOptions.setAccessToken(accessToken);
runApp(const MaterialApp(home: MapScreen()));
}MapWidget(
key: const ValueKey('mapWidget'),
onMapCreated: (controller) => mapboxMap = controller,
cameraOptions: CameraOptions(
center: Point(coordinates: Position(-122.4194, 37.7749)),
zoom: 12,
),
styleUri: MapboxStyles.STANDARD,
)final manager = await mapboxMap.annotations.createPointAnnotationManager();
final icon = (await rootBundle.load('assets/marker.png')).buffer.asUint8List();
await manager.createMulti([
PointAnnotationOptions(
geometry: Point(coordinates: Position(-122.4194, 37.7749)),
image: icon,
),
]);
// Current non-deprecated tap API
manager.tapEvents(onTap: (annotation) {
debugPrint('tapped ${annotation.id}');
});
// Also: longPressEvents, dragEventsfinal raw = await rootBundle.loadString('assets/data.geojson');
final features = (jsonDecode(raw)['features'] as List).cast<Map<String, dynamic>>();For thousands of features use a GeoJsonSource + SymbolLayer instead of annotations.
await mapboxMap.location.updateSettings(LocationComponentSettings(
enabled: true,
puckBearingEnabled: true,
locationPuck: LocationPuck(locationPuck2D: DefaultLocationPuck2D()),
));Grant permission first (use permission_handler).
await mapboxMap.flyTo(
CameraOptions(
center: Point(coordinates: Position(-80.1263, 25.7845)),
zoom: 17,
),
MapAnimationOptions(duration: 2000),
);Info.plist / AndroidManifest.xmlMapboxOptions.setAccessToken(...) called in main() before runAppmanager.tapEvents (not deprecated addOn...ClickListener)