簡體   English   中英

如何在顫振中獲得緯度和經度

[英]How to get latitude and longitude in flutter

我可以弄清楚如何將用戶的緯度和經度放在一起,但需要單獨獲取它們以利用 Geolocator 包中的 Geolocator().distanceBetween 函數。 我下面的代碼不斷收到錯誤消息:

未處理的異常:NoSuchMethodError:在 null 上調用了 getter 'latitude'。

接收器:空

嘗試調用:緯度

  Future<Position> getLocation() async {
    var currentLocation;
    try {
      currentLocation = await geolocator.getCurrentPosition(
          desiredAccuracy: LocationAccuracy.best);
    } catch (e) {
      currentLocation = null;
    }
    return currentLocation;
  }


  void calculateDistance() async {

    getLocation().then((position) {
       userLocation = position;
    });

      final double myPositionLat =  userLocation.latitude;
      final double myPositionLong = userLocation.longitude;

      final double TPLat = 51.5148731;
      final double TPLong = -0.1923663;
      final distanceInMetres = await Geolocator().distanceBetween(myPositionLat, myPositionLong, TPLat, TPLong)/1000;

      print(distanceInMetres);

  }

嘗試這個 :

void calculateDistance() async {

getLocation().then((position) {
   userLocation = position;


  final double myPositionLat =  userLocation.latitude;
  final double myPositionLong = userLocation.longitude;

  final double TPLat = 51.5148731;
  final double TPLong = -0.1923663;
  final distanceInMetres = await Geolocator().distanceBetween(myPositionLat, myPositionLong, TPLat, TPLong)/1000;

  print(distanceInMetres);

  });
}

或另一種方法是:

void calculateDistance() async {

userLocation = await getLocation();


  final double myPositionLat =  userLocation.latitude;
  final double myPositionLong = userLocation.longitude;

  final double TPLat = 51.5148731;
  final double TPLong = -0.1923663;
  final distanceInMetres = await Geolocator().distanceBetween(myPositionLat, myPositionLong, TPLat, TPLong)/1000;

  print(distanceInMetres);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM