我正在使用google_maps_flutter:^2.2.0和地理定位器:^9.0.1,并试图通过从地理定位器包运行此代码来获取用户的纬度和经度
Position posisiNow = await Geolocator.getCurrentPosition(
desiredAccuracy: LocationAccuracy.high);
问题是……当我试图到达posisiNow.latitude
或posisiNow.longitude
时,我总是会出错,但当我只打印posisiNow
时,我得到了很好的结果:Latitude: 37.33233141, Longitude: -122.0312186
。尝试打印posisiNow.latitude
时的错误为:NoSuchMethodError: The getter 'latitude' was called on null.
我需要这些数据,因为我需要在google_maps_flutter:的函数中输入纬度和经度
controllerNow.animateCamera(CameraUpdate.newCameraPosition(
CameraPosition(
bearing: 192.8334901395799,
target: LatLng(posisiNow.latitude, posisiNow.longitude),
tilt: 0,
zoom: 16.00)));
这个问题只在ios模拟器中出现,我在android中尝试过,效果很好。我也在中提出了这个问题https://github.com/Baseflow/flutter-geolocator/issues/1135
此处target: LatLng(posisiNow.latitude, posisiNow.longitude),
的纬度和经度不能为空。您可以提供默认的回退值。target:LatLng(positisiNow.latitude?0.0,posisiNow.longitude??0.0(,您需要使Position?
为空。
此外,您还可以在构建此小部件之前获取位置。例如处于初始状态。