Google maps 如何在颤振中连续跟踪用户位置?
我想跟踪用户位置。出于这个原因,我正在使用颤振的位置包。同样,我使用流来实时跟踪。但是我如何在谷歌地图上实时显示用户的位置呢。我对在谷歌地图上显示实时位置有些问题 **这是我的定位服务课**Google maps 如何在颤振中连续跟踪用户位置?,google-maps,flutter,dart,Google Maps,Flutter,Dart,我想跟踪用户位置。出于这个原因,我正在使用颤振的位置包。同样,我使用流来实时跟踪。但是我如何在谷歌地图上实时显示用户的位置呢。我对在谷歌地图上显示实时位置有些问题 **这是我的定位服务课** class LocationService { UserLocation _currentLocationofUser; Location location = Location(); //Sürekli güncelle StreamController<UserLocation>
class LocationService {
UserLocation _currentLocationofUser;
Location location = Location();
//Sürekli güncelle
StreamController<UserLocation> _locationController =
StreamController<UserLocation>.broadcast();
LocationService() {
location.requestPermission().then((granted) {
if (granted != null) {
location.onLocationChanged.listen((locationData) {
if (locationData != null) {
_locationController.add(UserLocation(
latitude: locationData.latitude,
longitude: locationData.longitude));
}
});
}
});
}
Stream<UserLocation> get locationStream => _locationController.stream;
类定位服务{
用户位置_currentLocationofUser;
位置=位置();
//苏雷克利·甘塞尔
StreamController\u位置控制器=
StreamController.broadcast();
位置服务(){
location.requestPermission()。然后((已授予){
如果(已授予!=null){
location.onLocationChanged.listen((locationData){
if(locationData!=null){
_locationController.add(用户位置(
纬度:locationData.latitude,
经度:locationData.longitude);
}
});
}
});
}
Stream get locationStream=>\u locationController.Stream;
**这里是我的主要类,显示用户的实时位置**
@override
_HomeViewState createState() => _HomeViewState();
}
class _HomeViewState extends State<HomeView> {
GoogleMapController _mapController;
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
var userLocation = Provider.of<UserLocation>(context);
return GoogleMap(
mapType: MapType.normal,
initialCameraPosition: CameraPosition(
zoom: 12,
target: LatLng(userLocation.latitude, userLocation.longitude)),
onMapCreated: (GoogleMapController controller) {
_mapController = controller;
},
);
}
}
@覆盖
_HomeViewState createState();
}
类_HomeViewState扩展了状态{
谷歌地图控制器(GoogleMapController);;
@凌驾
void initState(){
super.initState();
}
@凌驾
小部件构建(构建上下文){
var userLocation=Provider.of(上下文);
返回谷歌地图(
mapType:mapType.normal,
initialCameraPosition:CameraPosition(
缩放:12,
目标:LatLng(userLocation.latitude,userLocation.longitude)),
onMapCreated:(谷歌地图控制器){
_mapController=控制器;
},
);
}
}