Flutter Geolocator软件包未提供英语位置

时间:2020-07-09 07:06:53

标签: flutter dart flutter-dependencies

我使用的是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;

2 个答案:

答案 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);