Доброго дня!
можно ли как-то получить координаты от яндекса в автоматичексом режиме по адресу
т№е№ у мен яесть База с адресами типа Алматы, ул Пушкина, 140
но записей много, а координат нет,
Ни кто не встерчал скрипт который мог бы возвращать по запросу координаты?
http://api.yandex.ru/maps/tools/getlonglat/
нашел такой инструмент, но вручную капец ка кне хочеться перебирать
получить координаты например от Яндекса
Re: получить координаты например от Яндекса
заинтересовался
в чем проблема?
посмотрел http://api.yandex.ru/maps/doc/geocoder/ ... amples.xml
написал
осталось только правильно составить запрос и получить минимальный результат.
толко не забывайте, что там ограничение на количество запросов и рекомендуется сохраять результат в БД.
ps. php должен быть собран с curl скорее всего и незапрещен в php.ini
в чем проблема?
посмотрел http://api.yandex.ru/maps/doc/geocoder/ ... amples.xml
написал
Код: Выделить всё
<?php
$ask = 'Алматы, ул Пушкина, 140';
$url = 'http://geocode-maps.yandex.ru/1.x/?format=json&geocode='.$ask;
$res = file_get_contents ( $url);
print_r ( json_decode( $res));
толко не забывайте, что там ограничение на количество запросов и рекомендуется сохраять результат в БД.
ps. php должен быть собран с curl скорее всего и незапрещен в php.ini
Re: получить координаты например от Яндекса
Код: Выделить всё
<?php
$params = array(
'geocode' => 'Алматы, пр.Гагарина,135ж', // адрес
'format' => 'json', // формат ответа
'results' => 1, // количество выводимых результатов
'key' => 'AML1CVMBAAAAbQy7PwIA97S9R_k8lCiLwoDS37kFxQWjVR4AAAAAAAAAAACPBQZS73AHrmVL3hvBz1zsELf0Uw==', // ваш api key
);
$response = json_decode(file_get_contents('http://geocode-maps.yandex.ru/1.x/?'.http_build_query($params, '', '&')));
//$response = 'http://geocode-maps.yandex.ru/1.x/?format=json&geocode='.$ask;
if ($response->response->GeoObjectCollection->metaDataProperty->GeocoderResponseMetaData->found > 0)
{
$text = $response->response->GeoObjectCollection->featureMember[0]->GeoObject->Point->pos;
$newText = explode(' ' , $text);
echo $text;
echo "<br>";
echo $newtext[0];
echo "<br>";
echo $newtext[1];
}
else
{
echo 'Ничего не найдено';
}
?>
Хотел еще спросить
почему не работает функция explode, хотел разбить координаты и в разные ячейки писать,
а она не разбивается.
и как еще красиво оформить что бы он на ограничения не попал по запросам. т.е. может например брать по 10 записей ?!
Re: получить координаты например от Яндекса
мой тест работает
если бы вы включили просмотр ошибок, то увидели, что переменная newtext - Undefined variable.
следите за регистром в именах переменных.
по второму вопросу. изучайте на тему cron и скриптов или очередей.
cron и скрипты это OC зависимые вещи, а про очереди не скажу - не пользовал - поищите на форуме - были вопросы.
Код: Выделить всё
cat test.php
<?php
$ask = 'Алматы, ул. Пушкина, 140';
$url = 'http://geocode-maps.yandex.ru/1.x/?format=json&geocode='.$ask;
$res = json_decode(file_get_contents ( $url));
$lats = $res->response->GeoObjectCollection->featureMember[0]->GeoObject->Point->pos;
echo $lats;
$lats = explode( ' ' , $lats );
print_r( $lats);
php test.php
76.953667 43.255432
Array
(
[0] => 76.953667
[1] => 43.255432
следите за регистром в именах переменных.
по второму вопросу. изучайте на тему cron и скриптов или очередей.
cron и скрипты это OC зависимые вещи, а про очереди не скажу - не пользовал - поищите на форуме - были вопросы.
Re: получить координаты например от Яндекса
Автор вопроса писал, что "записей много", т.е. АДРЕСОВ МНОГО
А приведённые коды выдают только лишь один адрес:
И 'geocode' => 'Алматы, пр.Гагарина,135ж',
И $ask = 'Алматы, ул. Пушкина, 140';
Как сделать вывод нескольких адресов???
Спасибо!
А приведённые коды выдают только лишь один адрес:
И 'geocode' => 'Алматы, пр.Гагарина,135ж',
И $ask = 'Алматы, ул. Пушкина, 140';
Как сделать вывод нескольких адресов???
Спасибо!