Я никогда не был уверен в API. Мне удалось получить API на веб-странице с помощью jQuery, но теперь мне нужно декодировать местоположение lat и lng ТОЛЬКО следующего json (https://maps.googleapis.com/maps/api/geocode/json?address=via%20pascal%2033/2%2042123%20reggio%20emilia&key=) с помощью PHP и получения двух данных как vars:
{
"results" : [
{
"address_components" : [
{
"long_name" : "2",
"short_name" : "2",
"types" : [ "street_number" ]
},
{
"long_name" : "Via Blaise Pascal",
"short_name" : "Via Blaise Pascal",
"types" : [ "route" ]
},
{
"long_name" : "Reggio Emilia",
"short_name" : "Reggio Emilia",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Reggio nell'Emilia",
"short_name" : "Reggio nell'Emilia",
"types" : [ "administrative_area_level_3", "political" ]
},
{
"long_name" : "Provincia di Reggio Emilia",
"short_name" : "RE",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "Emilia-Romagna",
"short_name" : "Emilia-Romagna",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "Italia",
"short_name" : "IT",
"types" : [ "country", "political" ]
},
{
"long_name" : "42123",
"short_name" : "42123",
"types" : [ "postal_code" ]
}
],
"formatted_address" : "Via Blaise Pascal, 2, 42123 Reggio Emilia RE,
Italia",
"geometry" : {
"location" : {
"lat" : 44.6666003,
"lng" : 10.5960504
},
"location_type" : "ROOFTOP",
"viewport" : {
"northeast" : {
"lat" : 44.6679492802915,
"lng" : 10.5973993802915
},
"southwest" : {
"lat" : 44.6652513197085,
"lng" : 10.5947014197085
}
}
},
"partial_match" : true,
"place_id" : "ChIJWaiGeqUcgEcR9l6qwloEWgo",
"types" : [ "street_address" ]
}
],
"status" : "OK"
}
В конце концов, мне нужно иметь возможность отображать пользователю:
"Широта - $ lat, а долгота - $ lng"
Спасибо
Да, это то, что я имею в виду, и я пробовал использовать json-декодирование, но не смог решить свою проблему, я застрял в декодировании только lat e lng, поэтому просто json_decode ($ datalink) мне не подходит. Кстати, спасибо за исправление.
Декодирование JSON является обязательным, и если вы не используете json_decode(), вам придется найти сторонний декодер JSON или свернуть свой собственный.






Попробуйте этот код, если вам нужна только последняя точка результата.
$myJsonData = file_get_contents("https://maps.googleapis.com/maps/api/geocode/json?address=via%20pascal%2033/2%2042123%20reggio%20emilia&key = ");
$myArrayData = json_decode($myJsonData, 1);
foreach($myArrayData['results'] as $myItem){
$lat = $myItem['geometry']['location']['lat'];
$lng = $myItem['geometry']['location']['lng'];
}
printf("Latitude is %s and longitude is %s", $lat, $lng);
Просто отлично! Большое спасибо.
Добро пожаловать. Если вам нужны широта / долгота всех результатов, просто соберите широту / долготу в массив в foreach. Удачи!
Я никогда раньше не слышал термина «API-декодирование». Если вы спрашиваете, как декодировать JSON в PHP, ответьте json_decode ().