2016-02-07 3 views
3

Я хочу, чтобы государство и уезд из адреса использовали геокод с API Google. Это мой код:Получите штат и округ от адреса

$geocode=file_get_contents('http://maps.google.com/maps/api/geocode/json?address='.$street.''.$plz.''.$city.'&sensor=false'); 
     $output= json_decode($geocode); 
     $lat = $output->results[0]->geometry->location->lat; 
     $long = $output->results[0]->geometry->location->lng; 
     $formatted_adress = $output->results[0]->formatted_address; 
     $state = $output->results[0]->address_components->administrative_area_level_2; 
     $county = $output->results[0]->address_components->administrative_area_level_1; 

latitude, longitude и formatted_adress работы найти и я могу сохранить результаты в моей базе данных, но государство и округ не работает.

Это выход:

{ 
    "results" : [ 
     { 
     "address_components" : [ 
      { 
       "long_name" : "Hauptgasse", 
       "short_name" : "Hauptgasse", 
       "types" : [ "route" ] 
      }, 
      { 
       "long_name" : "Solothurn", 
       "short_name" : "Solothurn", 
       "types" : [ "locality", "political" ] 
      }, 
      { 
       "long_name" : "Solothurn", 
       "short_name" : "Solothurn", 
       "types" : [ "administrative_area_level_2", "political" ] 
      }, 
      { 
       "long_name" : "Solothurn", 
       "short_name" : "Südost", 
       "types" : [ "administrative_area_level_1", "political" ] 
      }, 
      { 
       "long_name" : "Schweiz", 
       "short_name" : "CH", 
       "types" : [ "country", "political" ] 
      }, 
      { 
       "long_name" : "4500", 
       "short_name" : "4500", 
       "types" : [ "postal_code" ] 
      } 
     ], 
     "formatted_address" : "Hauptgasse, 4500 Solothurn, Schweiz", 
     "geometry" : { 
      "bounds" : { 
       "northeast" : { 
        "lat" : 47.2088079, 
        "lng" : 7.540025399999999 
       }, 
       "southwest" : { 
        "lat" : 47.2065432, 
        "lng" : 7.535295899999999 
       } 
      }, 
      "location" : { 
       "lat" : 47.20778, 
       "lng" : 7.537360000000001 
      }, 
      "location_type" : "GEOMETRIC_CENTER", 
      "viewport" : { 
       "northeast" : { 
        "lat" : 47.20902453029149, 
        "lng" : 7.540025399999999 
       }, 
       "southwest" : { 
        "lat" : 47.20632656970849, 
        "lng" : 7.535295899999999 
       } 
      } 
     }, 
     "partial_match" : true, 
     "place_id" : "ChIJS4BfGfnXkUcRqLUKnJzN54U", 
     "types" : [ "route" ] 
     } 
    ], 
    "status" : "OK" 
} 
+1

показать нам '$ output', распечатав его, тогда только мы можем предложить, что вам нужно сделать? –

ответ

1

По вашему данным json, что вы показываете вам нужно получить state и county, как показано ниже: -

$state = $output->results[0]->address_components[2]->long_name;// i assume `Solothurn` is state name 
$county = $output->results[0]->address_components[4]->long_name; // i assume `Schweiz` is county name 

если имя округа также Solothurn то просто изменить код графства, как показано ниже: -

$county = $output->results[0]->address_components[3]->long_name; 
+0

спасибо. schweiz - название страны на английском языке. Швейцария –

+0

Спасибо, рад помочь вам –

+0

Есть еще одна проблема Посмотрите на мой ответ –