2013-10-08 2 views
3

У меня есть JSON: http://maps.googleapis.com/maps/api/geocode/json?latlng=49,19&sensor=falseJSON Google геокодирования API получить страну

и мне нужно получить только short_name страны. (Для этого примера «СК»). Поэтому я получаю короткое имя, которое атрибут «типы» содержит [«страна», «политический»].

У меня есть ...

data.results[0].address_components 

спасибо.

ответ

13

Это будет охватывать компоненты адреса и искать тип страны, а затем политический. Если вы хотите, чтобы страна была возвращена, если оба появятся, дайте мне знать. Хотя его не сложно было изменить, этот код в качестве основной помогающей точки состоял из цикла 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)); 
+0

Спасибо! отлично ! ты спасаешь мою жизнь! kkk – Furlan

1
<?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=AIzaSyDUpz-WEZ7r24PPkGKEuyqBd9VsPPVPcQk&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 
         } 
        } 
       } 
      } 
     } 
    } 
} ?> 
+0

Вы должны добавить контекст к своему ответу, чтобы читатели могли лучше понять, а не просто фрагмент кода. – Milo

Смежные вопросы