gpt4 book ai didi

google-maps - 如何使 flutter google map 中的标记随相机而不是 map 一起移动

转载 作者:行者123 更新时间:2023-12-05 08:53:02 25 4
gpt4 key购买 nike

我看了一个video其中位置标记随相机移动而没有粘在 map 上。我不确定这是否是 Flutter 的官方谷歌地图,但如果是的话,这是如何实现的。

我尝试将 Controller 相机位置传递给标记,但没有成功,因为我不确定标记位置是否随着相机移动而更新。

 mapController.addMarker(MarkerOptions(
icon: BitmapDescriptor.fromAsset("assets/images/marker.png"),
position: LatLng(mapController.cameraPosition.target.latitude,mapController.cameraPosition.target.longitude),
infoWindowText: InfoWindowText("Pick up location", "Pick up location")
));

最佳答案

您可以通过在每次相机移动时创建一个新标记但提供相同的标记 ID 来做到这一点。实际上,它不会创建新标记,但会根据相机位置开始移动相同的标记。方法如下:

import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';

class YourMapView extends StatefulWidget {
@override
_YourMapViewState createState() => _YourMapViewState();
}

class _YourMapViewState extends State<YourMapView> {
final markers = Set<Marker>();
MarkerId markerId = MarkerId("YOUR-MARKER-ID");
LatLng latLng = LatLng(43.2994, 74.2179);

@override
void initState() {
markers.add(
Marker(
markerId: markerId,
position: latLng,
),
);
super.initState();
}

@override
Widget build(BuildContext context) {
return GoogleMap(
initialCameraPosition: CameraPosition(target: latLng,zoom: 14.34),
markers: markers,
onCameraMove: (position){
setState(() {
markers.add(Marker(markerId: markerId,position: position.target));
});
},
);
}
}

关于google-maps - 如何使 flutter google map 中的标记随相机而不是 map 一起移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54544030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com