Flutter:Geolocator更新破坏了我的代码。我怎样才能解决这个问题? :/

时间:2020-10-01 21:39:09

标签: flutter dart

我有一个按钮在Google Maps中启用了“跟随模式”。此处的代码/教程为:https://github.com/nhandrew/mapfollow

这是我目前的功能(在删除所有不再与最新的Geolocator兼容的代码之后)。

    super.initState();

    subscription = getPositionStream(desiredAccuracy: LocationAccuracy.high)
        .listen((position) async {
      centerScreen(position);
      getLocation();
    });
  }

  Future<void> centerScreen(Position position) async {
    final GoogleMapController controller = await _controller.future;
    controller.animateCamera(CameraUpdate.newCameraPosition(CameraPosition(
        target: LatLng(position.latitude, position.longitude),
        zoom: _currentZoom)));
  }


  Future getLocation() async {
    Position position =
        await getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
    lat = position.latitude;
    lng = position.longitude;
}

这是在我的initState之上:

  StreamSubscription subscription;

这是在我的Google Map中,onMapCreated:

subscription.pause();

因此,它以暂停状态开始。我像这样恢复它:

  if (item.menuTitle.startsWith('Lock')) {
    mapController.animateCamera(CameraUpdate.newLatLng(LatLng(lat, lng)));
    expanded ? subscription.resume() : subscription.pause();
    expanded = !expanded;
    setState(() {});
  }
}

我认为这个文件是一个主要问题:

https://github.com/nhandrew/mapfollow/blob/master/lib/services/geolocator_service.dart

调用最终的Geolocator geo = Geolocator();不再有效。最新的更新确实破坏了一切。有人可以建议我如何更改geolocator_service.dart文件以使其与最新的geolocator兼容吗?

好的,我不知道为什么它不起作用。我尝试重新创建geolocator_service.dart文件,但这仍然无法正常工作

0 个答案:

没有答案