#php #google-maps
#php #google-карты
Вопрос:
Я использую Google Maps API для получения координат местоположений, используя следующий код:
$q = "Miami Florida"; //example location to query
$api_key = "ABQIAAAA...";
$handle = fopen("http://maps.google.com/maps/geo?q=".urlencode($q)."amp;sensor=falseamp;oe=utf8amp;gl=enamp;output=csvamp;key=".$api_key,"r");
$data = fgetcsv($handle); ?>
<?php echo $data[0]; ?> <br />
Latitude: <?php echo $data[2]; ?> <br />
Longitude: <?php echo $data[1]; ?>
Он возвращает правильную широту (25.7889689), но долгота всегда состоит из одной цифры, такой как 4 или 5.. Это происходит с любым местоположением, которое я запрашиваю. Также данные [0] должны быть поиском точности, но он возвращает 200
.. не уверен, правильно ли это.
Ответ №1:
Вы используете неправильный индекс для обозначения долготы
http://maps.google.com/maps/geo?q=new haven ctamp;sensor=falseamp;oe=utf8amp;gl=enamp;output=csv
Вы хотите $data[3]
.
$data[1]
является ли точность
Ответ №2:
Первый элемент — это код ответа сервера, который в вашем случае равен 200, сообщающий вам, что он прошел успешно. Второй элемент — это точность. Третий и четвертый — это широта и долгота соответственно.
Когда я ввел http://maps.google.com/maps/geo?q=23943amp;sensor=falseamp;oe=utf8amp;gl=enamp;output=csv в моем браузере я получил следующий вывод:
200,5,33.4954920,-86.8094808
Если вы замените вывод csv на json, вы получите более понятную для пользователя версию.