Клуб API Карт

Перестал работать геокодер на сайте

Пост в архиве.

Пол года работал код по определению координат на php и в один прекрасный день перестал

 

$postadr = simplexml_load_file('http://geocode-maps.yandex.ru/1.x/?geocode=Москва,Бронницкий пер, 6');

$stat = $postadr->GeoObjectCollection->metaDataProperty->GeocoderResponseMetaData->results;

if ($stat > 0)

{

$result = $postadr->GeoObjectCollection;

$dis = '';

$codlat =$result->featureMember[0]->GeoObject->Point->pos;

$codlat = str_replace(' ', ',', $codlat);

print $codlat;


Просто крутит время потом выдает "данные не получены" Этот же код на других сайтах работает без проблем

Пробовал такой вариант c ключем результат тот же

$params = array(

    'geocode' => 'Москва, ул. Льва Толстого, 16', // адрес

    'format'  => 'json',                          // формат ответа

    'results' => 1,                               // количество выводимых результатов

    'key'     => '...',                           // ваш api key

);

$response = json_decode(file_get_contents('http://geocode-maps.yandex.ru/1.x/?' . http_build_query($params, '', '&')));

 if ($response->response->GeoObjectCollection->metaDataProperty->GeocoderResponseMetaData->found > 0)

{

    echo $response->response->GeoObjectCollection->featureMember[0]->GeoObject->Point->pos;

}

else

{

    echo 'Ничего не найдено';

}

13 комментариев
Sergey Konstantinov
27 января 2016, 23:37
Вы действительно предполагаете, что, если один и тот же код на одном сайте работает, а на другом нет — то проблема не в настройке сервера?

Честно сказать я сейчас готов куда угодно смотреть.

Кода 3 строчки из функций используется только simplexml_load_file который в соседнем скрипте прекрасно работает при парсере отчетов.

У меня подозрения другого плана, я не исключаю что за сутки там могло привысить 25000 запросов. И честно сказать не знаю как реагирует яндекс и где можно посмотреть что я выбрал лимит запросов.


Sergey Konstantinov
27 января 2016, 23:37
Для ответа на этот вопрос нужно знать ваш ключ или ip.
Но я бы поставил на то, что настройками сервера запрещено url_fopen или как оно там в PHP называется.

Использую без ключа IP 194.58.92.31

Спасибо

Sergey Konstantinov
27 января 2016, 23:37
В наших списках забаненных этого ip нет.
Обращений с этого ip к нашим серверам за вчера тоже, кажется, нет.
adm@chernogolovka.ru
27 января 2016, 23:37

У меня ровно такая же ситуация. Пару дней геокодер работал, а потом перестал. У меня тоже нет ключа. IP сервера 176.9.216.1. Посмотрите, пж, в чём дело.

Sergey Konstantinov
27 января 2016, 23:37
По нашим логам на все обращения с этого API 30 ноябре наши сервера отвечали 200.
Михаил Исаев
28 октября 2019, 19:34
Та же самая проблема. Использую ключ, ничего не получаю в ответ. Запрос отправляю с сервера qr-mail.com
Михаил Исаев,
напишите нам в техподдержку с примером запроса.
Maps API,
Подскажите, как связаться с вашей тех поддержкой? Указываю ключ, сервер возвращает ошибку 403
murtahan.aglarov,
напишите, пожалуйста, через форму тут: https://tech.yandex.ru/maps/doc/feedback/troubleshooting-docpage/#feedback
Валерий Григорьевич Г.
20 января 2020, 00:08
мои 5 копеек. тоже мучился после перехода. тоже "перестало вдруг работать"


<?php
$params = array(
'geocode' => 'Алматы, пр.Гагарина,135ж', // адрес
'format' => 'json', // формат ответа
'results' => 1, // количество выводимых результатов
'apikey' => ' ', // ваш api key !!!!!! не KEY а APIKEY !!!! Это важно. брать тут: https://developer.tech.yandex.ru/services/
);
$postadr = json_decode(file_get_contents('https://geocode-maps.yandex.ru/1.x/?'.http_build_query($params, '', '&')));
//$response = 'http://geocode-maps.yandex.ru/1.x/?format=json&geocode='.$ask;
$stat = $postadr->response->GeoObjectCollection->metaDataProperty->GeocoderResponseMetaData->results; //поиск результата. если есть то.
if ($stat > 0)
{
echo "<br>------3----=".$postadr->response->GeoObjectCollection->featureMember[0]->GeoObject->metaDataProperty ->GeocoderMetaData ->AddressDetails -> Country-> AdministrativeArea->AdministrativeAreaName;
echo "<br>------4----=".$postadr->response->GeoObjectCollection->featureMember[0]->GeoObject->Point->pos; // получаем координаты точки ;
}
else
{
echo 'Ничего не найдено';
}
?>
Валерий Григорьевич Г.
20 января 2020, 00:21
вариант с XML


$params = array(
'geocode' => 'Алматы, пр.Гагарина,135ж', // адрес
'results' => 1, // количество выводимых результатов
'apikey' => '*********', // ваш api key
);


$http = file_get_contents('https://geocode-maps.yandex.ru/1.x/?'.http_build_query($params, '', '&'));
echo "<br>-----ответ -----=".$http;


$postadr = simplexml_load_file('https://geocode-maps.yandex.ru/1.x/?'.http_build_query($params, '', '&'));
$stat = $postadr->GeoObjectCollection->metaDataProperty->GeocoderResponseMetaData->results; //поиск результата. если есть то.
if ($stat > 0)
{
$result = $postadr->GeoObjectCollection;
$codlat =$result->featureMember[0]->GeoObject->Point->pos; // получаем координаты точки
$codlat = str_replace(' ', ',', $codlat); // заменить пробелы на запятую
print "<br>получаем точки=".$codlat;


$codlat =$result->featureMember[0]->GeoObject->metaDataProperty ->GeocoderMetaData ->AddressDetails -> Country-> AdministrativeArea->AdministrativeAreaName; // город (область)
print "<br>область=".$codlat;