Reputation: 29
I'm working with a flutter_map application and I have the map setup with markers and all but I can't figure out how to use the MapEventLongPress class event.
Basically I want to long press the map and get coordinates from the event, anyone willing to help me get in that direction?
import 'package:flutter/material.dart';
import 'package:flutter_map/flutter_map.dart';
import 'package:latlong2/latlong.dart';
class MapPage extends StatelessWidget {
const MapPage({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return FlutterMap(
options: MapOptions(center: LatLng(74, 40), minZoom: 10.0),
layers: [
TileLayerOptions(
urlTemplate: "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
subdomains: ['a', 'b', 'c']
}),
MarkerLayerOptions(markers: [
Marker(
width: 45.0,
height: 45.0,
point: LatLng(74, 40),
builder: (context) => Container(
child: IconButton(
icon: Icon(Icons.location_on),
color: Colors.red,
iconSize: 45.0,
onPressed: () async {
},
)
)
)
],
),
]
);
}
}
Theres not much on google on this, I can only find the class documantation at https://pub.dev/documentation/flutter_map/latest/flutter_map.plugin_api/MapEventLongPress-class.html but I could really need some example code to get going.
Upvotes: 2
Views: 1013
Reputation: 583
options: MapOptions(
onLongPress: (tapPosition, point) {
markers.add(
Marker(
point: point,
builder: (context) {
return const Icon(
Icons.pin_drop,
color: Colors.orange,
);
}),
);
},
),
Upvotes: 0
Reputation: 1887
With the the recent api from flutter_map v3.0.0 you can react to the MapEventLongPress
Event like this:
FlutterMap(
mapController: mapController,
options: MapOptions(
...
onMapEvent: (evt) {
if(evt is MapEventLongPress){
log.d("Hey this a MapEventLongPress event");
log.d(evt.tapPosition);
}
},
...
),
children: [...]
)
Upvotes: 0