我使用的是Flutter geolocator软件包的最新版本,它为大多数国家/地区提供了英语的国家/地区名称和位置,但对于某些国家(例如德国,西班牙,法国等),却没有提供英语名称,而是提供了母语用户。我该如何更改?
Position position = await geolocator.getCurrentPosition(
desiredAccuracy: LocationAccuracy.medium);
List<Placemark> placemark =
await geolocator.placemarkFromCoordinates(
position.latitude, position.longitude);
_location = {
'country': placemark[0].country,
'postalCode': placemark[0].postalCode,
'state': placemark[0].administrativeArea,
'city': placemark[0].subAdministrativeArea,
'latitude': placemark[0].position.latitude,
'longitude': placemark[0].position.latitude
};
_city = placemark[0].subAdministrativeArea;
答案 0 :(得分:0)
placemarkFromAddress和placemarkFromCoordinates均接受可选的localeIdentifier参数。此参数可用于强制根据指定的语言环境对结果的地标进行格式化(和翻译)。应该使用以下语法设置localeIdentifier的格式:[languageCode] _ [countryCode]。语言代码使用ISO 639-1或ISO 639-2标准,国家/地区代码使用2个字母的ISO 3166-1标准。
含义:
List<Placemark> placemark =
await geolocator.placemarkFromCoordinates(
position.latitude, position.longitude);
应该是:
List<Placemark> placemark =
await geolocator.placemarkFromCoordinates(
position.latitude, position.longitude, localeIdentifier: localeIdentifierValue);
https://pub.dev/packages/geolocator了解有关localeIdentifierValue选项的更多信息
答案 1 :(得分:0)
Placemark 已从 geolacator 库中分离出来,目前位于 gecoding 库中
确保你从 pub.dev 获得它们各自的库
import 'package:geocoding/geocoding.dart';
import 'package:geolocator/geolocator.dart';
Position position = await Geolocator.getCurrentPosition(
desiredAccuracy: LocationAccuracy.high);
List<Placemark> placemark =
await placemarkFromCoordinates(position.latitude, position.longitude);