Клуб API Карт

Заголовок не указан

ali1958
17 июля 2015, 17:19

Здравствуйте,

пытаюсь построить путь и вывести время без и с учётом пробок. http://ali1958.narod.ru/

Почему-то для данных точек время с учётом пробок всегда бесконечно (1.7976931348623157e+308), хотя карты Яндекса показывают 9 минут именно для этих точек без всяких проблем.

Вот кусок кода, который создаёт выходную строку:

 

        start = [55.6414456,37.3675493];
        finish = [55.63666118,37.34170313];
        ymaps.route([start, finish],
                    {mapStateAutoApply: true}
                   ).then(function (route)
          {
            myMap.geoObjects.add(route);
            var way = route.getPaths().get(0);
            TAB = '	';
            next_row = "[" + route.requestPoints[0] +
                "] : [" + route.requestPoints[1] + "] " +
                way.getLength().toFixed() +  TAB + 
                way.getTime().toFixed() + TAB +
                way.getJamsTime().toFixed() + '</br>';       // вот тут возвращается бесконечность
            $('#list').append(next_row);
          }, function (error) {alert('Возникла ошибка: ' + error.message);});

 

Когда я считаю пути для списка пар точек (около 2000 пар), то срабатывает function (error) с сообщением "Превышено время ожидания ответа сервера" для некоторых пар (всё время одних и тех же), и я вижу, что у всех у них стоит бесконечное время. Когда я оставил только одну такую пару, чтобы написать этот вопрос, function (error) не срабатывает, просто время тихо выводится бесконечным.

Может ли кто-нибудь помочь решить проблему? Заранее спасибо за любой совет.

13 комментариев
Подписаться на комментарии к посту

А что у вас за проект в котором нужен маршрут для 2000 пар точек?

Вы меня не так поняли. Это пар точек около 2000, а маршруты между ними обычные - между двумя точками. Мне непонятно, почему между некоторыми из них время с учётом пробок возвращается бесконечное, хотя Яндекс карты строят нормальные пути.

пусть обычные, но прежде чем решать проблему все же хочется убедиться, что вы используете сервис в рамках пользовательского соглашения

Если имеется в виду моя задача, то есть около 50 точек, надо посчитать пути из всех во все (как раз около 2500 путей) и вывести времена (с учётом пробок и без учёта).

Это чему-то противоречит? Мне казалось, что нет.

Вывести где? Можно увидеть ссылку на ваш сервис? Вы отправляете 2500 запросов при суточном лимите 25000. У вас меньше 10 посетителей в день?

Когда код будет работать, то это будет на том же сайте: http://ali1958.narod.ru/. Вместо одной пары точек (как в примере) будут стоять координаты 50 точек. Посетителей кроме себя не предполагаю.

Согласно условиям использования все маршруты надо показывать на карте, вы собираетесь показывать 2500 маршрутов одновременно? Думаю нет, да и карта не потянет столько ломаных

Для получения матрицы расстояний (для решения задачи коммивояжера) вполне можно обойтись аппроксимацией по прямой через getDistance

https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/coordSystem.geo-docpage/

 

Для чего может понадобится получение матрицы времен и что у вас за сервис я так и не понял

Ваша ссылка - это не то, что мне надо. Мне важны именно времена.

2500 маршрутов одновременно - это, конечно, избыточно. Я новичок в Javascript, и пока не знаю, насколько сложно сделать клик в интересующие данные маршрута (например, строку с координатами точек начала и конца) и отрисовкой его на карте.

Давайте я повторю свой исходный вопрос: есть одна конкретная пара точек, между которыми возвращается бесконечное время с учётом пробок, хотя сам Яндекс показывает нормальный путь с конечным временем. Как преодолеть эту проблему?

Я так и не получил ответа на вопрос, что за сервис вы создаете и для чего. Что это за точки и что вы собираетесь делать с этими данными? Просто так долбить тысячи запросов в маршрутизатор, чтобы показать табличку с временами мне видится бессмысленной тратой ресурсов и формально нарушает Условия Использования АПИ. Сервис маршрутизации предназначен для построения маршрутов и показа их на карте Яндекса, а не для формирования матриц расстояний/времен в развлекательных целях.

 

Я передал ваш вопрос маркетологам АПИ, подождем что они скажут 

Здравствуйте! Расскажите, пожалуйста, какой сервис вы создаёте с использованием API? На каком сайте можно его увидеть?

Добрый день,
 
вашему коллеге я уже писал, что моя конечная цель - вывести времена между выбранными точками с учётом/без учёта пробок.  Примеры я пробую на сайте http://ali1958.narod.ru/. Если получится реализовать желаемое, то это будет по этому же адресу.
 
Точки (несколько десятков) я хочу выбрать так, чтобы понять характерные времена, например, из центра до МКАД и бетонки и обратно. 
 
На случай, если это связано с ограничениями на число запросов (или вообще соглашения об использовании):
- какой именно пункт соглашения я могу нарушить?
- сколько стоит платное использование API? Я начал процедуру получения ключа, но на данный момент остановило то, что меня просят отвечать на ряд вопросов ДО объявления цены. Хотелось бы знать хотя бы порядок цифры, возможно, тогда и остальные вопросы не понадобятся.

Если вас (и вашего коллегу) что-то беспокоит, то напишите мне, пожалуйста, об этом прямо. е-mail: ali1958@yandex.ru

Мой вопрос - чисто технический, и я не понимаю, почему вам не ответить на него одновременно с вашими вопросами ко мне.

С уважением,
Александр Алиев

Дело в том, что использовать бесплатную версию API можно только в связке с картой. Планируете ли вы отображать маршруты на карте?
Стоимость платной лицензии и типовой договор можно запросить через нашу службу поддержки или при получении ключа.
Если не секрет, какие вопросы анкеты при получении ключа остановили вас от заполнения?

Изначально цель - посмотреть времена. Я так вас понял, что это считается уже коммерческим использованием, верно? Воспользовался вашей ссылкой.

Ключ я уже получил, но анкетные вопросы для его активации (имя, фамилия, место работы) начинаются до появления стоимости. Мне это кажется странным: разве цена зависит от того, как меня зовут или где работаю? Цену билета на поезд всегда можно узнать до заполнения анкеты при покупке билета.

Цитируя вашего коллегу: "Я так и не получил ответа на вопрос: "   :)

С уважением,
Александр Алиев