【问题标题】:How to Convert latitude and Longitude to Address by using Location Plugin in Flutter如何在 Flutter 中使用 Location 插件将经纬度转换为地址
【发布时间】:2021-09-30 07:24:48
【问题描述】:

我正在使用Location 库来获取纬度和经度 https://pub.dev/packages/location

Location location = new Location();
    var latitude = "";
    var longitude = "";
    LocationData _locationData;
    _locationData = await location.getLocation();
    latitude = _locationData.latitude.toString();
    longitude = _locationData.longitude.toString();

但是我怎样才能把这个纬度和经度转换成地址。

【问题讨论】:

    标签: flutter dart location


    【解决方案1】:

    使用geocoder

    final coordinates = new Coordinates(latitude, longitude);
    addresses = await Geocoder.local.findAddressesFromCoordinates(coordinates);
    first = addresses.first;
    print("${first.featureName} : ${first.addressLine}");
    

    【讨论】:

    • geocoding 是一个更新的包,例如它实现了空值安全,而地理编码器没有。
    • @Amir Hossein Rahmanzadeh 这个插件很旧,它不是零安全的。如果我安装这个插件,它将无法工作。
    • 当更多包定义同一个类时会发生这种情况。只需执行以下操作:import '...' as something; 用于其中一个包,然后将其作为前缀,例如您可以访问其内容,如something.function... 等。
    • @MohammedNabil 不替换,添加在前面,比如testLocation.Location();
    • @AmirHosseinRahmanzadeh 请阅读文档。 getLocationLocation 类的方法。所以你必须保存Location 实例并在其上调用这个方法:final myLocation = testLocation.Location(); 然后myLocation.getLocation() 将起作用。
    【解决方案2】:

    您可以使用Nominatim,这是一个免费的开源地理编码 API。建议设置您自己的服务器,但如果您遵守他们的usage policy,则可以使用他们的公共 API。

    【讨论】:

      猜你喜欢
      • 2010-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-15
      • 1970-01-01
      • 1970-01-01
      • 2018-01-12
      • 1970-01-01
      相关资源
      最近更新 更多