在带有Flutter的Google地图上长按Drop Pins的方法如下:
google_maps_flutter
插件,该插件提供了与Google地图交互的功能。google_maps_flutter
插件,并创建一个GoogleMap
小部件来显示地图。你可以设置初始位置、缩放级别和其他地图属性。GestureDetector
小部件来检测长按手势。将GestureDetector
包装在GoogleMap
小部件的上层。GestureDetector
的onLongPress
回调函数中,你可以获取长按的位置坐标。你可以使用LatLng
类来表示经纬度。下面是一个示例代码,演示了如何在带有Flutter的Google地图上长按Drop Pins:
import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
class MapScreen extends StatefulWidget {
@override
_MapScreenState createState() => _MapScreenState();
}
class _MapScreenState extends State<MapScreen> {
GoogleMapController _mapController;
Set<Marker> _markers = {};
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Google Map with Flutter'),
),
body: GoogleMap(
initialCameraPosition: CameraPosition(
target: LatLng(37.7749, -122.4194), // 初始位置(旧金山)
zoom: 12.0, // 初始缩放级别
),
markers: _markers,
onMapCreated: (GoogleMapController controller) {
_mapController = controller;
},
gestureRecognizers: Set()
..add(Factory<EagerGestureRecognizer>(() => EagerGestureRecognizer())),
),
);
}
void _addMarker(LatLng location) {
setState(() {
_markers.add(
Marker(
markerId: MarkerId(location.toString()),
position: location,
infoWindow: InfoWindow(
title: 'Marker Title',
snippet: 'Marker Snippet',
),
icon: BitmapDescriptor.defaultMarker,
),
);
});
}
}
在上述示例中,我们创建了一个MapScreen
小部件,其中包含一个GoogleMap
小部件。在GoogleMap
小部件的onMapCreated
回调函数中,我们获取了地图控制器,以便后续操作。
在GoogleMap
小部件的gestureRecognizers
属性中,我们添加了一个EagerGestureRecognizer
手势识别器,以确保长按手势能够正常工作。
在_addMarker
函数中,我们创建了一个自定义的标记对象,并将其添加到_markers
集合中。在GoogleMap
小部件中,我们使用markers
属性来显示这些标记。
你可以根据自己的需求进行修改和扩展,例如自定义标记图标、添加点击事件等。
希望以上内容对你有帮助!如果你需要更多关于Flutter和Google地图的信息,可以参考腾讯云的相关产品和文档:
领取专属 10元无门槛券
手把手带您无忧上云