/// 逆地理编码(根据经纬度获取省市区和详细地址)
Future<Map<String, String>> getAddressFromLocation(double latitude, double longitude) async {
const String apiKey = '';
final String url =
'https://restapi.amap.com/v3/geocode/regeo?location=${longitude},${latitude}&key=$apiKey&radius=1000&extensions=base';
final response = await http.get(Uri.parse(url));
if (response.statusCode == 200) {
final Map<String, dynamic> data = json.decode(response.body);
if (data['status'] == '1') {
final regeo = data['regeocode'];
final addressComponent = regeo['addressComponent'];
final formattedAddress = regeo['formatted_address'];
return {
'province': addressComponent['province'] ?? '',
'city': addressComponent['city'] ?? '',
'district': addressComponent['district'] ?? '',
'address': formattedAddress ?? '',
};
} else {
throw Exception('逆地理编码失败:${data['info']}');
}
} else {
throw Exception('网络请求失败,状态码: ${response.statusCode}');
}
}
把key改成你的。
注意申请key的时候,选择 Web服务;