Клуб API Карт

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

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

http://test.codemaster.com.ua/search_action_ref.php - попробуйте несколько раз проложить маршрут.Почему в геооколекцию элементы заносятся в рандомном порядке.И почему после прокладки нескольких маршрутов начинает так жутко тормозить?С ТОРМОЗАМИ Я РАЗОБРАЛСЯ

 

21 комментарий

Какие элементы заносятся рандомно, как это можно увидеть.

Не совсем понял как проложить несколько маршрутов - одновременно получается активировать два + какая-то белая чтука добавляется.

Тормозов не заметил.

Слава Русов
28 января 2016, 03:56

Белая штука - это кратчайший отрезок маршрута который пролегает от точек "До" и "От".Вот скрипт выбирает 2 варианта маршрута (сбоку выводятся кнопки с именами маршрутов) попробуй несколько раз еще нажать на проложить маршрут и увидишь что порядок иногда неняется местам.Почему так?

Я вам даже более скажу - маршруты могут вообще разные приходить.

Виновата квантовая флуктуация целочисленных полей в пространстве распределенного кластера серверов (тех кто за этим стоит еще не нашли. Это заговор!)

А вот если искать от четкого текстового адреса до четкого адреса - тут будет стабильнее.

Слава Русов
28 января 2016, 03:56

Ты че стебешься надо мной?Данные приходят всегда в оиднаковом порядке.Данные запращиваются с моего сервера.И если координаты исходных точек одинаковые то результат вернет всегда один и тот же

Роутер на самом деле может отдавать различные результаты.

Даже известны места где это особо любит делать.

Слава Русов
28 января 2016, 03:56

сейчас делай то же посмотри в консоль 

смотрю в книгу вижу фигу.

Что я должен был из консоли понять?

Слава Русов
28 января 2016, 03:56

объекты выводятся в скаком порядке

Пожалуйста читайте свои сообщения перед отправкой.

Слава Русов
28 января 2016, 03:56

в консоли выводятся данные об объектах.Можно проследить в каком порядке они выводятся и в каком порядке выводятся кнопки.Надписи на кнопках соответствуют названию маршрута.

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

Это точно гарантирует что порядок получения ответов не будет соблюдаться.

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

Вот и все.

Слава Русов
28 января 2016, 03:56

как это исправить?

Создать кнопки заранее, в нужном и известном порядке.

И передавать экземпляр кнопки вместе с точками маршрута.

Слава Русов
28 января 2016, 03:56

Отличная идея, благодарю!

что-то оно вобще не работает

TypeError: point_from.geometry is undefined
var coords_start = point_from.geometry.getCoordinates();
Слава Русов
28 января 2016, 03:56

Наверное я правил код.Посмотри еще раз.thekashey я все объяснил

Это конечно не надо делать в цилке

Достаточно один раз

var balloonLayout = ymaps.templateLayoutFactory.createClass('$[properties.iconContent]$[properties.numbers]');ymaps.layout.storage.add('my#Layout' , balloonLayout);
Слава Русов
28 января 2016, 03:56

Спасибо исправил.А как выводить в одном и том же порядке маршруты?

Если у тебя есть упорядоченный список с маршрутами (массив) ты можешь при его переборе и получении данных связывать обработчик получения ответа с индексом маршрута в массиве (через замыкание) и класть ответ в другой результирующий массив по тому же индексу.

Таким образом данные маршрутов будут идти в том же порядке

Слава Русов
28 января 2016, 03:56

а как связывать индексы и что такое замыкание?И еще мне нужно сортировать маршруты по длинне или времени  проезда.