如何从坐标中获取城市?

How to get city from coordinates in flutter?

我正在使用 GeoLocator 对 Flutter 的依赖,并且能够获取位置的实时坐标。

但是我只想导出城市的广义坐标我应该怎么做。

下面的代码在使用上述依赖项时提供了准确的实时位置,我不需要。

我想要基于地理位置的城市名称。

请指导我应该如何实现?

 await Geolocator.getCurrentPosition().then((value) => {
                        _positionItems.add(_PositionItem(
                            _PositionItemType.position, value.toString()))
                      });

您可以使用地理编码https://pub.dev/packages/geocoding

import 'package:geocoding/geocoding.dart';
import 'package:geolocator/geolocator.dart';


...
position = await Geolocator.getCurrentPosition(
            desiredAccuracy: LocationAccuracy.best)
        .timeout(Duration(seconds: 5))
 
try {
    List<Placemark> placemarks = await placemarkFromCoordinates(
        position.latitude,
        position.longitude,
      );
      print(placemarks[0]);
      ...
    }catch(err){}
  ...

你可以使用这个包https://pub.dev/packages/geocoder

var address = await Geocoder.local.findAddressesFromCoordinates(coordinates);
String yourCityName = address.first.locality