如何从flutter中的坐标获取城市?

问题描述 投票:0回答:3

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

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

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

我想根据地理位置获得城市名称。

请指导我应该如何实现它?

 await Geolocator.getCurrentPosition().then((value) => {
                        _positionItems.add(_PositionItem(
                            _PositionItemType.position, value.toString()))
                      });
flutter dart geolocation maps
3个回答
8
投票

您可以使用地理编码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){}
  ...

1
投票

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

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

0
投票

Geodecoder 在 Dart 3 中已弃用,请使用 Geocode 代替 Geodecoder,如下所示:

var address = await GeoCode().reverseGeocoding(latitude, longitude);

现在你可以通过使用变量地址找到更多东西:

 print(address.city);

print(地址.国家/地区名称);

您可以在这里获取地理编码包

© www.soinside.com 2019 - 2024. All rights reserved.