使用google_maps_flutter
插件时,如何获取用户当前位置的LatLng
?
我希望有这样的东西:
GoogleMap(
onLocationChanged: (latLng) {
// Something like this callback ...
}
)
附言:我不想使用任何其他插件。
Flutter是一个允许您轻松创建UI的框架。但在这项技术背后,实际上我们没有任何原生功能。为了使这些功能发挥作用,我们有";方法通道";或";Dart:FFI";。
如果你看一下插件的源代码,它会让本机函数颤动,它们大多使用";方法通道";。
谷歌地图插件允许您使用谷歌地图api,但如果您想使用或获取客户端位置,您必须有一些本地代码。
一些第三方应用程序已经为你提供了这一功能,但如果你想为自己开发它,你必须为Android编写自己的代码;iOS。然后你需要把它和颤动联系起来。要做到这一点,你需要使用方法通道。
没有办法从google_maps_flutter插件中获取当前位置,但您可以通过获取显示位置
GoogleMap(
onCameraMove: (LatLng displayingLocation){
// do operations here
}
)
或使用地图控制器
mapController.getLatLng(ScreenCoordinate(
x: MediaQuery.of(context).size.width,
y: MediaQuery.of(context).size.height))
也许您需要的是Flutter dev.的定位包
这样你就可以监听位置的变化,也许还可以更新你当前的位置变量。
类似于:
location.onLocationChanged().listen((LocationData newLoc) {
currentLocation = newLoc;
});