- BrainTools - https://www.braintools.ru -
Эта история про то, как обычная задача «собрать маршрут на выходные» превратилась в сервис, которым сейчас пользуюсь не только я. Без кода и сложных терминов — просто что я хотел, что из этого вышло и где я ошибался.

Мне нужно было собрать маршрут на несколько дней. Задача звучит просто: провести линию по карте, посмотреть, сколько километров и сколько набора высоты, найти места, где есть вода, и отправить готовый трек друзьям, чтобы он открылся у всех. Так же я хотел делиться своим снаряжением и раскладкой с другими сразу привязанным к треку.
На практике каждый раз получалось одно и то же. Обычные карты — Яндекс, Google, 2ГИС — строят маршрут по дорогам. Тропу они либо не знают, либо ведут по ней так, будто это улица с движением. Специальные сервисы для туристов есть, и хорошие, но у каждого что‑то не совпадало: где‑то нет личного кабинета, где‑то самое базовое начинается после оплаты, где‑то оплатить из России просто не получится.
В один прекрасный момент, когда отечественный сервис закрыл бесплатную возможность скачивать треки меня и понесло. В своей жизни я пользуюсь девизом: Хочешь сделать хорошо — сделай сам.Поэтому дальше произошло предсказуемое: я решил, что напишу себе такое за выходные. Ну а когда я сделал первый прототип, то поделился с другими людьми и увидел отклик.
За выходные, разумеется, не вышло. Вышло за две недели — и это была очень простая штука: кликаешь точки, между ними рисуется линия по дорогам, внизу — график высот, есть кнопка «скачать трек».
Этого хватило ровно на один настоящий поход. После него стало понятно, что интересное начинается не в линии.
Оказалось, что мне нужно видеть тропы, а не только дороги. Что набор высоты — не одно число, а картинка, по которой видно, где будет тяжело. Что маршрут удобно разбивать на дни и сразу видеть, сколько каждый день. Что метки «здесь ночуем», «здесь вода», «здесь осторожно» нужны не меньше самой линии.
Так небольшая поделка на выходные превратилась в занятие на три месяца. Сейчас в проекте 240 с лишним изменений и много строк кода.
Когда сервисом начали пользоваться другие люди, выяснилось, что половина моих представлений о том, что важно, была неверной.
Ссылка важнее приложения. Я думал, что главное — функции. А главным оказалось то, как маршрут передаётся другим. Человек собрал маршрут и кидает ссылку в чат турклуба. Если по ссылке открывается что‑то непонятное или требующее регистрации — дальше ничего не происходит.
Отдельная история: я довольно долго не замечал, что ссылка на маршрут в мессенджерах выглядела голым текстом, без картинки и описания. Причина оказалась в том, что Telegram и ВКонтакте, когда готовят такую картинку, не запускают на странице никаких программ — просто берут то, что им отдали сразу. А у меня заголовок и описание появлялись чуть позже, уже в браузере человека. Для сервиса, который распространяется по принципу «смотри, какой маршрут я собрал», это был главный тормоз роста, и стоил он мне примерно месяц. И пока я это делал, я решил ещё сделать возможность прикреплять к маршруту снаряжение с которым я хожу и раскладку, расписанную по граммам. Получилось очень удобно, когда спрашивают с чем ходил, что брал. Просто кинул ссылку и на все вопросы есть сразу ответы. Автоматизация в 21ом веке актуальный термин )))))
Люди приходят с файлом в руках. Оказалось, что заметная часть посетителей вообще не собирается ничего строить. У них уже есть трек от знакомых, и им нужно просто посмотреть, что это такое: сколько километров, куда идёт, какие подъёмы. Раньше эта возможность у меня была, но найти её было негде — кнопка пряталась значком на карте. Пришлось сделать отдельную страницу, куда можно просто перетащить файл.
Бесплатное должно быть настоящим. Я сам ушёл из чужих сервисов, потому что там за скачивание своего же трека просили подписку. Поэтому у себя оставил бесплатным всё, за чем человек приходит в первый раз: построить маршрут, посмотреть профиль высот, открыть чужой трек, скачать файл. Регистрация нужна, только чтобы сохранять маршруты и делиться ссылкой. Подписка есть, но за неё идут вещи которые упрощают и добавляют комфорт в использовании сервиса.
Про тропы. Я был уверен, что в готовых картах, которые я использовал как подложку, почти нет троп — я это «проверил» и получил: в одном куске карты одна тропа, а в моих данных на том же месте 37. Целый кусок работы был построен на этом выводе.
Через несколько месяцев я готовил картинку для другой статьи, нарисовал обе версии рядом — и увидел, что «одна тропа» выглядит как густая сеть. Оказалось, в готовой карте все тропы склеены в один объект, а у меня каждая — отдельная. Я сравнивал не данные, а способ их упаковки. Когда я посчитал километры вместо штук, разница оказалась в доли процента: 119 километров против 120 на одном и том же участке.
Вывод, который я теперь повторяю себе регулярно: число выглядит убедительно независимо от того, правильное оно или нет. Считать надо то, что имеет смысл, а не то, что легко посчитать.
Про место на сервере. Однажды ночная обработка данных упала с сообщением «нет места на диске», хотя на диске было почти 7 свободных гигабайт. Полдня я искал, куда делось место. Оказалось, что папка для временных файлов на моём сервере — это вовсе не диск, а кусок оперативной памяти [1]. Программа складывала туда файл на гигабайт, память кончалась, всё падало. Лечится одной строчкой настроек, но найти её можно, только перестав верить тексту ошибки [2].
Про безопасность. В какой‑то момент я обнаружил в журналах сервера, что файл с паролями к моей же базе скачали девять неизвестных адресов. Не взлом, не хитрая атака — я сам настроил сервер так, что он отдавал наружу всё, что лежит в папке проекта, включая то, что отдавать нельзя. Это был неприятный вечер: сменить все пароли, закрыть доступ, проверить, что ещё утекло. С тех пор у меня есть правило: проверять не только код, но и то, что реально отдаёт сервер, если постучаться напрямую.
Сейчас это сайт, где можно:
построить маршрут по дорогам и тропам, прямыми отрезками или по воде;
сразу увидеть профиль высот: где подъём, где спуск, сколько всего;
посмотреть на карте родники, стоянки, перевалы, водопады, броды и главное живые отчеты от реальных людей;
поставить метки с понятными значками — палатка, вода, опасность;
сохранить маршрут, поделиться ссылкой, встроить карту на свой сайт;
скачать трек в форматах, которые понимают навигаторы и часы;
распечатать карту с масштабом и линиями для работы с компасом.
Создать список снаряжения, понять сколько кг у тебя базовый вес.
Составить раскладку как для себя любимого, так и для группы. И главное иметь возможность всё это проанализировать, так как есть удобные иснтрументы.
Посмотреть что находиться в округе от заданной точки в радиусе 2 км с описанием из Википедии.
И это не полный список всех полезностей.
Карта у сервиса своя. Не в смысле «мы нарисовали мир» — основа открытая, из OpenStreetMap, — а в смысле, что я собираю её сам под походные задачи: чтобы тропы были заметнее дорог, чтобы рельеф читался, чтобы родник было видно. Есть карта базовая из OSM, своя карта пока не на весь мир, так как что бы держать весь мир необходимо больше затрат. Если проект вырастит до таких масштабов, это первое, что я сделаю. Но пока можно и обходиться картами под весь мир из OSM/
Отдельно живёт приложение для часов Amazfit — на запястье виден трек и своя точка на нём. И сейчас я доделываю приложение для Android, главная задача которого — работать без интернета: карта района, тропы, высоты и построение маршрута прямо в телефоне, когда связи нет. Районов собрано 48, от Крыма до Камчатки. Так же на Amazfit сделал приложение барометра, которое делает прогноз на основе тех цифр, которые получает устройство. Теперь не надо самому сильно разбираться что происходит с давлением и атмосферой если за послединие часа два упало на мм.рт. столба, тут начинаешь быстрее учится и понимать.
Вопрос, который мне задают чаще всего после «зачем».
Основные функции бесплатны и останутся такими. Подписка на Путемер Pro стоит 299 рублей в месяц или 1990 в год, и я честно скажу: она пока не окупает даже сервер и я сам финансирую своё детище. Это нормально для проекта, которому три месяца, и я не делал его ради заработка. Но и работать в минус вечно нельзя, поэтому платная часть есть и будет расти — только не за счёт того, что уже бесплатно. Хотелось бы сделать максимально удобный сервис для каждого, но это возможно, только если он будет нужен людям и его будут поддерживать.
Ближайшее — доделать приложение и закрыть скучное, но важное: описания к маршрутам, чтобы их можно было найти не только по ссылке от знакомых.
А дальше хочется того, чего нигде не видел: чтобы сервис умел сказать не только «маршрут 30 километров, набор 1500», но и «на этом участке воды не будет 12 километров», «сюда лучше не соваться после дождя», «в это время года перевал ещё в снегу». Данные для этого частично есть, остальное знают люди, которые там ходили.
Поэтому если вы ходите в походы — буду рад замечаниям. Особенно от тех, кто бывает в местах, где на картах троп нет, а в реальности они есть.
Сервис живёт по адресу putemer.ru [3]. Я пользуюсь им сам в каждом походе — собственно, ради этого всё и затевалось.
Автор: Sunspirit
Источник [4]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/35917
URLs in this post:
[1] памяти: http://www.braintools.ru/article/4140
[2] ошибки: http://www.braintools.ru/article/4192
[3] putemer.ru: http://putemer.ru
[4] Источник: https://habr.com/ru/articles/1085732/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1085732
Нажмите здесь для печати.