当我尝试使用地理编码器获取地址时,给出“未处理的异常:PlatformException(失败,失败,null)”的运行时错误
Posted
技术标签:
【中文标题】当我尝试使用地理编码器获取地址时,给出“未处理的异常:PlatformException(失败,失败,null)”的运行时错误【英文标题】:when I try to get address using geocoder, given a run time error of "Unhandled Exception: PlatformException(failed, Failed, null)" 【发布时间】:2020-08-12 17:04:28 【问题描述】:我尝试使用“地理定位和地理编码”的 dart 插件获取位置。但代码给出了“Unhandled Exception: PlatformException(failed, Failed, null)”的错误。我该如何克服它?
import 'package:geolocator/geolocator.dart';
import 'package:geocoder/geocoder.dart';
Future<String> getCurrentLocation() async
final location = await Geolocator().getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
String latitude =(location.latitude).toString();
String longitude = (location.longitude).toString();
String _center = latitude + "," + longitude;
print(_center);
final coordinates = await new Coordinates(location.latitude, location.longitude);
var addresses = await Geocoder.local.findAddressesFromCoordinates(coordinates);
var first = addresses.first;
print("$first.featureName : $first.addressLine");
return _center;
【问题讨论】:
试试这个https://www.digitalocean.com/community/tutorials/flutter-geolocator-plugin
我试试这些教程。但代码给出了同样的错误。错误 - “PlatformException(ERROR_GEOCODING_COORDINATES,服务不可用,null)”
“服务不可用”表示在坐标转换过程中发生了 IOException。根据我们使用的底层 android SDK,这意味着“如果网络不可用或发生任何其他 I/O 问题,则会引发 IOException。尝试重新启动手机并运行flutter clean,然后再试一次。确保定位服务是开启
非常感谢,莫比乌斯·布莱克,你是对的。这个对我有用。 ??????
没有提及....????@Dilrukshika Rajapakshe
【参考方案1】:
添加您的 apikey,它将起作用:
var addresses = await Geocoder.google ( '<---------YOUR APIKEY-------->' ).findAddressesFromCoordinates(coordinates);
【讨论】:
【参考方案2】:您需要在 Google Cloud Platform 中创建一个密钥并为其启用 Geocoder API
用途:
await Geocoder.google(your_API_Key).findAddressesFromCoordinates(coordinates);
代替:
await Geocoder.local.findAddressesFromCoordinates(coordinates);
【讨论】:
以上是关于当我尝试使用地理编码器获取地址时,给出“未处理的异常:PlatformException(失败,失败,null)”的运行时错误的主要内容,如果未能解决你的问题,请参考以下文章