我有一个JSON:http://maps.googleapis.com/maps/api/geocode/json?latlng=49,19&sensor=false
我需要获取国家的简称(例如此例中的'SK')。因此,我需要获取属性“types”包含[“country”,“political”]的short_name。
我有...
data.results[0].address_components
谢谢。
我有一个JSON:http://maps.googleapis.com/maps/api/geocode/json?latlng=49,19&sensor=false
我需要获取国家的简称(例如此例中的'SK')。因此,我需要获取属性“types”包含[“country”,“political”]的short_name。
我有...
data.results[0].address_components
谢谢。
这将循环遍历地址组件并查找国家类型,然后是政治类型。如果您只想在两者都出现时返回国家,请告诉我。虽然很容易修改此代码,因为主要的帮助点是for
循环。
// extract country short name (e.g. GB for Great Britain) from google geocode API result
function getCountry(addrComponents) {
for (var i = 0; i < addrComponents.length; i++) {
if (addrComponents[i].types[0] == "country") {
return addrComponents[i].short_name;
}
if (addrComponents[i].types.length == 2) {
if (addrComponents[i].types[0] == "political") {
return addrComponents[i].short_name;
}
}
}
return false;
}
console.log(getCountry(data.results[0].address_components));
<?php
$address = '77-379 North End road, London London SW61NP, United Kingdom'; // Your address(Please USe exist address)
$prepAddr = str_replace(' ','+',$address);
$geocode=file_get_contents('https://maps.google.com/maps/api/geocode/json?address='.$prepAddr.'&key=API_KEY&sensor=false');
$output= json_decode($geocode);
if ( isset($output->results) ) {
if ( isset($output->results[0]) ) {
if ( isset($output->results[0]->address_components) ) {
foreach ($output->results[0]->address_components as $key => $value) {
if ( isset($value->types) ) {
if ( isset($value->types[0]) ) {
if($value->types[0] == 'country'){
print_r($value->short_name); //GB
}
}
}
}
}
}
} ?>
这个是用来查找地址、城市名称和省份的
200 Dufferin St,多伦多,安大略省
geocoder.geocode(function (responses) {
res = responses[0].address_components[0].short_name.concat(' ')
.concat(responses[0].address_components[1].short_name).concat(', ')
for (var i = 0; i < responses[0].address_components.length; i++) {
if (responses[0].address_components[i].types[0] == "locality") {
res = res.concat(responses[0].address_components[i].short_name).concat(', ');
}
}
for (var i = 0; i < responses[0].address_components.length; i++) {
if (responses[0].address_components[i].types[0] == "administrative_area_level_1") {
res = res.concat(responses[0].address_components[i].short_name);
}
}
alert(res);
});