Я работаю, чтобы получить широту и долготу от карт Google через API геолокации. Я пробовал много раз, но всегда показывает эту ошибку:
Попытка получить свойство необъекта в C: \ wamp64 \ www \ index3.php в строке 16
Проблема в том, что я не могу получить информацию от $url
поэтому, не может получить широту и долготу.
Я изменил свой код, и теперь он есть, но все еще без работы.
<php
$address = urlencode('BTM 2nd Stage,Bengaluru,Karnataka,560076');
$url = "https://maps.googleapis.com/maps/api/geocode/json?address=$address&key=*************************************";$json = file_get_contents($url); // I tried with the @ symbol and without it
$data=json_decode($json);
echo ($data->results[0]->geometry->location->lat);
?>
А также я использовал это:
<php
$address = 'BTM 2nd Stage,Bengaluru,Karnataka,560076';
$encode = urlencode($address);
$key = "insert key here";
$url = "https://maps.googleapis.com/maps/api/geocode/json?address={$encode}&key={$key}";
$json = file_get_contents($url); // I tried with the @ symbol and without it
$data = json_decode($json);
echo "Latitud".($data->results[0]->geometry->location->lat);
?>
Без символа @ у меня есть эта строка ошибок
Предупреждение: file_get_contents () был отключен по соображениям безопасности в […] […] онлайн 8
менять HTTP
в HTTPS в вашем запросе URL.
Как Abrucius, вы можете использовать HTTPS, иначе Google отклонит запрос. Вы также должны закодировать адрес, иначе вы получите ошибку «Неверный запрос».
<?php
$address = 'BTM 2nd Stage,Bengaluru,Karnataka,560076';
$encode = urlencode($address);
$key = "insert key here";
$url = "https://maps.googleapis.com/maps/api/geocode/json?address={$encode}&key={$key}";
$json = file_get_contents($url);
$data = json_decode($json);
echo ($data->results[0]->geometry->location->lat);
Выходы: 12.9082396
заменить следующий код
$address = 'BTM 2nd Stage,Bengaluru,Karnataka,560076';
$url = "http://maps.googleapis.com/maps/api/geocode/json?address=$address&key=AIzaSyDjWI3J9CNlANoB5PXNKq3nz1ZbYeOrNGE";
в
$address = urlencode('BTM 2nd Stage,Bengaluru,Karnataka,560076');
$url = "https://maps.googleapis.com/maps/api/geocode/json?address=$address&key=AIzaSyDjWI3J9CNlANoB5PXNKq3nz1ZbYeOrNGE";
Вы предоставили http
в URL, это должно быть https
, Попробуйте приведенный ниже код, который поможет вам. Вы должны использовать urlencode()
потому что api не позволит места в адресе, поэтому вы должны кодировать.
$address = 'BTM 2nd Stage,Bengaluru,Karnataka,560076';
$address = urlencode($address);
$url = "https://maps.google.com/maps/api/geocode/json?address={$address}&key=***************************";
$resp_json = file_get_contents($url);
$resp = json_decode($resp_json, true);
echo "<pre>";print_r($resp["results"][0]['geometry']['location']['lat']);
Попробуйте этот код будет работать наверняка
Ответ WillParky93, кажется, работает нормально для меня. Может быть, попробуйте перейти по следующей ссылке, чтобы разрешить https оболочки:
Как заставить file_get_contents () работать с HTTPS?
…или опубликуйте полученную ошибку, чтобы мы могли помочь вам
Я только что решил эту проблему, я получил эту ошибку из-за конфигурации прокси. Я тестировал сеть с настройкой прокси. Таким образом, прокси не позволяет мне соединиться с базой данных Google. Тогда я попытался соединиться с другой сетью, и это работало отлично. Спасибо, ребята, за вашу помощь!