我在从 Google 地图 API 调用结果中获取城市名称时遇到问题。我已将我尝试过的内容放在结果下方。
我得到的结果是这样的(抱歉太长了!):-
{"plus_code": {"compound_code": "CF7P+FPG Coventry, UK", "global_code": "9C4WCF7P+FPG"}, "results": [{"address_components": [Array],
"formatted_address": "Samuel Vale House, St Nicholas St, Coventry CV1 4LU, UK", "geometry": [Object], "place_id": "ChIJwZLlz6JLd0gReeZG93iyO84", "types": [Array]}, {"address_components": [Array], "formatted_address": "28 Draper's Fields, Coventry CV1 4RB, UK", "geometry": [Object], "place_id": "ChIJledqNL1Ld0gRopKXZBQ3Dbw", "plus_code": [Object], "types": [Array]}, {"address_components": [Array], "formatted_address": "St Nicholas St, Coventry CV1, UK", "geometry": [Object], "place_id": "ChIJLcZB06JLd0gRJH9Mq01bnb0", "types": [Array]}, {"address_components": [Array], "formatted_address": "CF7P+FP Coventry, UK", "geometry": [Object], "place_id": "GhIJ4m1KHvQ0SkAReZvtwO81-L8", "plus_code": [Object], "types": [Array]}, {"address_components": [Array], "formatted_address": "25 Draper's Fields, Coventry CV1, UK", "geometry": [Object], "place_id": "EiAyNSBEcmFwZXIncyBGaWVsZHMsIENvdmVudHJ5LCBVSyIaEhgKFAoSCXHOkje9S3dIEaN9YbIkhsbsEBk", "types": [Array]}, {"address_components": [Array], "formatted_address": "Coventry CV1 4AF, UK", "geometry": [Object], "place_id": "ChIJL_gRNr1Ld0gR-C3zVwB43JE", "types": [Array]}, {"address_components": [Array], "formatted_address": "Coventry CV1, UK", "geometry": [Object], "place_id": "ChIJFXaeGQhLd0gRXmNKR5ZDV9Y", "types": [Array]}, {"address_components": [Array], "formatted_address": "Coventry, UK", "geometry": [Object], "place_id": "ChIJtyJuZVGxcEgRiQZPVvVg9gQ", "types": [Array]}, {"address_components": [Array], "formatted_address": "Coventry, UK", "geometry": [Object], "place_id": "ChIJc1uq9aFLd0gRIImX1COLDQQ", "types": [Array]}, {"address_components": [Array], "formatted_address": "Coventry, UK", "geometry": [Object], "place_id": "ChIJzyd10oVLd0gR7LyimJZGazw", "types": [Array]}, {"address_components": [Array], "formatted_address": "West Midlands, UK", "geometry": [Object], "place_id": "ChIJ_dclMtSAcEgR5_O7OttvyI0", "types": [Array]}, {"address_components": [Array], "formatted_address":
"England, UK", "geometry": [Object], "place_id": "ChIJ39UebIqp0EcRqI4tMyWV4fQ", "types": [Array]}, {"address_components": [Array], "formatted_address": "United Kingdom", "geometry": [Object], "place_id": "ChIJqZHHQhE7WgIReiWIMkOg-MQ", "types": [Array]}], "status": "OK"}
我这样调用 API :-
axios({
method: 'get',
url: 'https://maps.googleapis.com/maps/api/geocode/json?&key={my_key}&latlng='+latitude+','+longitude
}).then((response) => {
console.log(response.data);
});
我什么都玩过,但就是做不到。我认为这与使用地图有关,但我不确定。如果是这样,我该如何使用它?我能最接近地分解它的是:
console.log(response.data.results[0].address_components[0].long_name)
我可以在像这样的网页中的普通 JavaScript 中实现此目的,但它在 React Native 中不起作用
$.each( data['results'],function(i, val) {
$.each( val['address_components'],function(i, val) {
if (val['types'] == "locality,political") {
if (val['long_name']!="") {
var city = val['long_name']; // Getting the city name
}
else {
// UNKNOWN
}
经过多次尝试,我终于做到了。下面的代码以防其他人遇到同样的问题。我还发现这个网站可以很容易地以更易读的格式查看 JSON。
console.log(response.data.results[7].formatted_address)