Карты Google получают долготу - PullRequest
0 голосов
/ 04 мая 2011

Я использую API Карт Google для получения координат местоположений, используя следующий код:

$q = "Miami Florida"; //example location to query
$api_key = "ABQIAAAA...";

$handle = fopen("http://maps.google.com/maps/geo?q=".urlencode($q)."&sensor=false&oe=utf8&gl=en&output=csv&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. Это происходит с любым местоположением, которое я запрашиваю. Также data [0] должен быть точным поиском, но он возвращает 200 .. не уверен, что это правильно.

Ответы [ 2 ]

2 голосов
/ 04 мая 2011

Первый элемент - это код ответа сервера, который в вашем случае равен 200, чтобы вы знали, что он был успешным.Второй элемент - это точность.Третий и четвертый - широта и долгота соответственно.

Когда я ввел http://maps.google.com/maps/geo?q=23943&sensor=false&oe=utf8&gl=en&output=csv в свой браузер, я получил следующий вывод:

200,5,33.4954920, -86.8094808

Если вы замените вывод csv на json, вы получите более дружественную для человека версию.

2 голосов
/ 04 мая 2011

Вы используете неправильный индекс для долготы

http://maps.google.com/maps/geo?q=new+haven+ct&sensor=false&oe=utf8&gl=en&output=csv

Вы хотите $data[3].

$data[1] - это точность

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...