我正在使用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
Geodecoder 在 Dart 3 中已弃用,请使用 Geocode 代替 Geodecoder,如下所示:
var address = await GeoCode().reverseGeocoding(latitude, longitude);
现在你可以通过使用变量地址找到更多东西:
print(address.city);
print(地址.国家/地区名称);