【发布时间】:2020-09-23 17:51:45
【问题描述】:
我正在使用mapbox_gl,这是一个用于访问 Mapbox 服务的 Flutter 插件。应用程序需要显示从通过geolocator 插件获取的用户当前位置馈送的初始相机位置。在Android模拟器上,将当前位置设置为斯洛文尼亚卢布尔雅那的坐标(北纬46度,东经13度左右)会显示刚果共和国的地图,这显然是不正确的。
MapboxMap 小部件按以下方式构建:
class HomeScreen extends StatelessWidget {
final String mapboxToken = 'XXX-TOKEN-XXX';
@override
Widget build(BuildContext context) {
return Scaffold(
body: FutureBuilder(
future: _acquireCurrentPosition(),
builder: (BuildContext context, AsyncSnapshot snapshot) =>
snapshot.hasData
? MapboxMap(
accessToken: mapboxToken,
minMaxZoomPreference: MinMaxZoomPreference(6.0, 15.0),
compassEnabled: false,
initialCameraPosition: CameraPosition(
target: snapshot.data,
),
)
: Center(
child: CircularProgressIndicator(),
),
),
);
}
Future<LatLng> _acquireCurrentPosition() async {
Position position = await getCurrentPosition(
desiredAccuracy: LocationAccuracy.high,
);
return LatLng(position.latitude, position.longitude);
}
}
方法_acquireCurrentPosition()正确获取经纬度组合,并在安卓模拟器、iOS模拟器甚至安卓实体设备(小米红米Note 8 Pro)上进行了测试。即使使用不同的位置,初始相机位置的错误仍然存在。
非常感谢任何形式的帮助。
【问题讨论】:
标签: android ios flutter geolocation mapbox