Карта наличия топлива, которую ведут сами водители: как мы боремся с фейковыми отметками

Карта наличия топлива, которую ведут сами водители: как мы боремся с фейковыми отметками

Краудсорсинг отлично решает задачу «что сейчас на заправке», но у него есть родовая болезнь — данным нельзя верить на слово. Рассказываю, как устроен AZS MAP и какие механики мы построили, чтобы отметкам водителей можно было доверять.

Какую задачу решаем

Ситуация знакома любому водителю: приезжаешь на заправку — а нужной марки именно сейчас нет. На соседней станции в двух километрах при этом всё в порядке. Информации об этом нет нигде: сети АЗС не публикуют остатки в реальном времени, а звонить на заправку бесполезно.

Особенно чувствительно это в дальней дороге, где расстояние между работающими АЗС может достигать 80–150 км, и цена ошибки — машина на обочине.

AZS MAP — карта, где наличие топлива отмечают сами водители. Открыл, выбрал марку — видишь ближайшие заправки, где она есть. Работает в браузере, без регистрации. В базе — около 25 000 АЗС по всей России.

Ключевое решение: статус — не на АЗС, а на пару «АЗС × марка»

Первое, от чего мы отказались, — единый статус «есть бензин / нет бензина» на заправку. Он вводит в заблуждение: 92-й есть, 95-го нет — и что должна показывать одна общая метка?

У нас каждая марка (АИ-92, АИ-95, АИ-100, дизель) имеет собственный статус: «есть», «заканчивается», «нет», «нет данных». Цвет метки на карте зависит от того, какую марку выбрал конкретный пользователь: одна и та же АЗС для водителя на 92-м может быть зелёной, а для водителя на 95-м — красной. Отметка про одну марку не затирает данные о другой.

Проблема краудсорсинга: как понять, что отметке можно верить

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

Свежесть вместо «вечных» статусов. У каждой отметки видно, сколько ей минут. Старые данные не выдаются за актуальные: если по марке давно нет отметок, статус честно деградирует в «нет данных», а не висит зелёным с прошлой недели.

Подтверждения и «актуальность данных». Другие водители могут подтвердить отметку. Из свежести, числа подтверждений и полноты данных по маркам складывается индекс актуальности в карточке АЗС.

Гео-привязка. Отметить наличие можно только находясь рядом с заправкой — отметки «с дивана» из другого региона не принимаются.

Детектор противоречий. Если по одной марке на одной АЗС за короткое время приходят взаимоисключающие отметки («есть» — «нет» — «есть»), статус помечается как оспариваемый, и карточка прямо говорит: данные противоречивы, проверьте на месте.

Верификация реальными оплатами. Самая сильная механика: часть статусов подтверждается данными о фактических оплатах картой на АЗС. Такие статусы помечены галочкой — это уже не «кто-то сказал», а «там реально заправлялись».

Страницы трасс: немного геометрии

Отдельная фича для дальних поездок — страницы федеральных трасс: М-4 «Дон», М-5, М-11, Р-217 «Кавказ», «Таврида» и другие, всего 12.

Технически это было интереснее, чем кажется. Геометрию трасс мы взяли из OSM, но столкнулись с классической ловушкой: дорожная relation состоит из тысяч сегментов двух проезжих частей, и попытка выстроить из них упорядоченную осевую линию «в лоб» дала для 1544-километровой М-4 зигзаг длиной 6041 км.

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

Про приватность

Сервис не запрашивает регистрацию, телефон, почту или платёжные данные — вообще никаких персональных данных. Отметки публикуются анонимно.

Что дальше

Впереди — цены по АЗС и главное — рост плотности отметок: краудсорсинг-карта полезна ровно настолько, насколько активно сообщество.

Попробовать: azsmap.com

Буду благодарен за обратную связь в комментариях — особенно от тех, кто ездит по трассам: что показать на страницах маршрутов, чего не хватает.