Как стать автором
Обновить

Комментарии 14

Не работает. Ошибки в js. dbcartasvg.js: 28
Открылся в 3-х браузерах. Только маршруты далеко не оптимальные: ВДНХ — Университет. Хотя, у «Московский транспорт» хуже получается при пересадке между тремя вокзалами: 9 минут — быстрым шагом, без очередей и с билетом наготове ;)
Предпочитаю pMetro, и схем там на порядок больше.
Попробовать разные варианты можно через список Рассчитывать пути. ВДНХ — Университет без Кольцевых пересадок получается по прямой.
dbcartasvg.js:28 Error: attribute d: Unexpected end of attribute. Expected number, "….5333333333333 L".
Я верю, что у кого-то работает. У автора же работает:) Но я вас чего, обманываю что-ли? Разные окружения, разные плагины. Блокировка рекламы, например.
Подправил возможную ошибку в координатах 2 линий, оканчивавшихся на L. Сейчас должно работать. Для path это видимо некорректно, хотя в браузерах которых я смотрел (firefox, yandex, safari) ошибок не заметил. Что за браузер использовали и где (телефон, linux, windows)?. IE не в счет.
Работа похоже сделана немаленькая.
Работает. Красиво!

Поиск маршрута иногда косячит. Просто наугад выбрал "Охотный Ряд — Бибирево", маршрут получился через Комсомольскую, кольцо и Новослободскую, не оптимально.

Вообще-то по умолчанию (без вкл/откл опций пересадок в списке Рассчитывать пути) маршрут строится через Б.им.Ленина и Чеховскую. Через кольцо он строится после отключения в списке пересадок Между ветками. Но даже в первом варианте логичней ехать через Тверскую. Результат поиска на самом деле не «кратчайший путь», а «кто первый добрался». Например, от Новокузнецкой до Бибирево маршрут идёт через Тверскую. Также как я выделил кольцевые для большей точности можно выделить ещё узловые пересадки (пересадки на 3 и более станции) в отдельный список и обрабатывать отдельно.
В-четвертых, исходный алгоритм поиска был написан по стандарту ECMA2015 с использованием конструкций языка let, const, Set, которые не позволяли мне посмотреть карту на стареньком iPad 3G. Пришлось переписать код на старый формат с var, function.

Почему не взять babel, а ещё лучше typescript для этого? Но вообще, код там сам по себе печальный, всё вперемешку, почти всё в одном огромном god-объекте, а объект в огромном файле. Если кто будет изучать код — пожалуйста, не пишите так.


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

На телефоне, при зуме двумя пальцами постоянно прыгает куда-то в сторону

Да, тап двумя пальцами воспринимался как смещение по карте с одновременным зумом. Вроде подправил сейчас работает только зум. Особенность телефона — зум двумя пальцами растягивает все окно браузера не пересчитывая разрешение картинки. Для векторного изображения SVG это незаметно, браузер его пересчитывает под новый размер, только подтормаживать начинает навигация, а вот растягивание растровой канвасной картинки (например канвасной версии карты метро) искажает ее до «пиксельного» вида. Для качественного масштабирования с пересчетом разрешения (через функции transform и scale) картинки в SVG или канвасе я отдельно вывел кнопки ± слева или справа в зависимости от примера.

Зачем вы не любите запятые?

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

Публикации

Истории