Запросы геокодера Google Maps - PullRequest
       3

Запросы геокодера Google Maps

1 голос
/ 18 августа 2010

В настоящее время я создаю веб-сайт агентов по недвижимости с поиском, который возвращает набор свойств, хранящихся в базе данных.

Теперь я знаю, что у Google есть ограничение на количество запросов в день, поэтому яя пытаюсь придумать лучший способ сделать этот процесс.

По сути, на данный момент первым шагом поиска является ввод города или почтового индекса, с помощью которого я собирался отправить запрос на карты Google.API, чтобы получить их широту и долготу и сохранить их в базе данных для будущего использования, если они еще не были там.

Как вы думаете, это будет хорошо?Или есть лучшее решение вокруг этого?

Спасибо.

Ответы [ 3 ]

3 голосов
/ 18 августа 2010

Взгляните на этот сайт. Это сработало идеально для меня: http://www.geonames.org/export/ws-overview.html

Я использовал только функцию "findNearbyStreets" (http://www.geonames.org/maps/us-reverse-geocoder.html#findNearbyStreets),, и это был мой код:

<?php
$sFile = "list.csv";
$sContent = file_get_contents($sFile);

$aRows  = explode("\n", $sContent);
$sEcho = "";
$i      = 1;

echo "Total rows: " . count($aRows) . "\n===============\n\n";

foreach ($aRows as $sRow)
{
    $aCols  = explode(",", $sRow);

    $sLongitude = $aCols[0];
    $sLatitude = $aCols[1];
    $sInfo = ucfirst($aCols[2]);
    $sInfo = str_replace('"', '', $sInfo);

     $url = "http://ws.geonames.org/findNearbyStreetsOSMJSON?lat=$sLatitude&lng=$sLongitude";
     $json = file_get_contents($url);
     $data = json_decode($json, true);

     $street = $data['streetSegment'][0]['name'];

    $sEcho .= "Some text";

    echo "Done with row: $i/".count($aRows)." \n";
    $i++;
}

$rFile = fopen("newFile.txt", "w+");
fwrite($rFile, $sEcho);
fclose($rFile);
?>

С уважением, Пол

1 голос
/ 18 августа 2010

Ваш подход выглядит нормально - я полагаю, адрес объекта недвижимости не будет меняться слишком часто;)

Вы можете даже сохранить координаты для каждого свойства, например, «123 Foo Street, Barb AZ: 35,7, -111,0» и ищите их только в геокодере, если у вас их еще нет в базе данных.

0 голосов
/ 18 августа 2010

Просто запустите код из браузера пользователя - счетчик использования API будет учитываться по IP-адресу пользователя.

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