Android — Преобразование GPS-координат, полученных в адрес в стек переполнения

Я хочу изменить координаты в реальном времени, полученные с моих карт Google, на адрес.

Я пробовал следующий код:

<?php

$lat="9.102097";
$long="-40.187988";
geo2address($lat,$long);

function geo2address($lat,$long) {

$url = "http://maps.googleapis.com/maps/api/geocode/json?latlng=$lat,$long&sensor=false";
$curlData=file_get_contents(    $url);
$address = json_decode($curlData);
$a=$address->results[0];
return explode(",",$a->formatted_address);
print_r($address);
}

?>

Постскриптум Я тестирую с фиксированными координатами, но при успехе получу координаты из моего приложения

Я ссылался на код из Как конвертировать GPS координаты в полный адрес с помощью php? Но это не работает.

2

Решение

Есть несколько проблем с $url сам, такой как:

  • Вы используете http в URL, тогда как вы должны использовать https,
  • Вы не используете key параметр в URL. Зарегистрируйтесь на API KEY и используйте его в URL.

Вот пример одного такого URL:

https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&key=YOUR_API_KEY`

Вот документация обратного геокодирования:

Итак, ваш код должен быть таким:

$lat="40.714224";
$long="-73.961452";
geo2address($lat,$long);

function geo2address($lat,$long) {
$url = "https://maps.googleapis.com/maps/api/geocode/json?latlng=$lat,$long&key=YOUR_API_KEY";
$json = json_decode(file_get_contents($url), true);
$a = $json['results'][0]['formatted_address'];
print_r(explode(",",$a));
}

Несколько моментов, на которые стоит обратить внимание:

  • Широта и долгота взяты из самой документации.
  • Передайте второй параметр как true в json_decode() функция для преобразования его в ассоциативный массив. Тогда вам будет легко получить доступ к отдельным компонентам.
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]