Разработчик превратил PDF Ростелекома в интерактивную карту таксофонов России
Энтузиаст под псевдонимом создал проект PayPhone 2077 — веб-карту, отображающую все действующие таксофоны России. Основой послужил PDF-файл с адресами и номерами, опубликованный Ростелекомом. Проект демонстрирует, как из неудобного документа можно извлечь полезные данные и представить их в наглядном виде.
В начале 2026 года разработчик, увлекающийся старыми технологиями, обнаружил, что таксофоны в России по-прежнему работают. На сайте Ростелекома он нашёл PDF-документ со списком из 12 335 универсальных таксофонов, расположенных в 12 044 населённых пунктах. Этот файл содержал адреса и номера телефонов, но был непригоден для быстрого поиска и анализа. Тогда разработчик решил преобразовать его в интерактивную карту и назвал проект PayPhone 2077, обыграв киберпанковскую тематику и легаси-инфраструктуру. По словам автора, его зацепила не столько сама цифра, сколько форма подачи данных: «Двенадцать тысяч адресов — это уже не список, который можно прочитать глазами. Это данные. А у данных есть неприятное свойство: пока они лежат в PDF, они как бы существуют, но пользоваться ими неудобно». Так родилась идея визуализировать сеть, которая, казалось бы, канула в прошлое. Сам разработчик признаётся, что его интерес к теме начинался с простого удивления: он был уверен, что эпоха таксофонов давно закончилась, а последние карточные аппараты либо демонтированы, либо оставлены ржаветь в качестве арт-объектов. Однако данные Ростелекома показали обратное.
Сеть таксофонов оказалась неожиданно большой: она покрывает всю страну, от Карелии до дальневосточных регионов. Звонки с этих аппаратов бесплатны для стационарных и мобильных номеров по России, а также для экстренных служб. Таким образом, таксофоны остаются функционирующей инфраструктурой, а не музейными экспонатами. Разработчик отмечает, что многие просто перестали их замечать, но данные Ростелекома подтверждают: сеть жива и поддерживается. Интерес к теме подогревается немногочисленными публикациями на Хабре, где энтузиасты описывают поиски последних работающих аппаратов — например, статьи «Окраины городов и полукабины-призраки. Ищем последние рабочие таксофоны», «Последний выход из „Матрицы“. Где сейчас остались таксофоны?» и «Вторая жизнь таксофонов». Однако до сих пор не существовало удобного инструмента для визуализации всей сети. Проект PayPhone 2077 заполняет этот пробел, предлагая пользователям интерактивную карту с возможностью фильтрации по регионам. Автор отдельно благодарит участника под ником @MaFrance351 за интерес к этой, казалось бы, нишевой теме в 2026 году, что подчёркивает: вокруг таксофонов уже сформировалось небольшое, но устойчивое сообщество исследователей.
Техническая реализация проекта строится на извлечении текста из PDF с помощью библиотеки pdf.js прямо в браузере, без серверной обработки. Разработчик сознательно отказался от Node.js на сервере, следуя принципу KISS (Keep It Simple, Stupid): «Тащить ради этого Node.js на сервер — это как стрелять из пушки по воробьям». Он также иронизирует над перегруженностью современного фронтенда, отмечая, что хороший сайт должен весить немного, а большинство современных сайтов превращаются в неюзабельный компост при отключении JavaScript. Основная сложность заключалась в том, что PDF не содержит явной табличной структуры: текст представлен набором глифов с координатами. Как объясняет автор, «PDF — это не таблица, это хаос». Первая задача — понять, где вообще таблица. Код сканирует верхнюю половину страницы, ищет ключевые слова (субъект РФ, муниципальное образование, адрес, номер телефона) и кластеризует их по Y-координате. Зная, где начинаются заголовки, разработчик вычисляет середины между ними — это и есть невидимые границы колонок. Чтобы выжить в этом хаосе, пришлось ввести несколько магических констант, которые подбирались эмпирическим путём: MAX_ROWS = 10, Y_TOLERANCE = 3.5, HEADER_CLUSTER_TOLERANCE = 30, WRAPPED_LINE_MAX_DISTANCE = 16 и список полей TABLE_FIELDS, включающий регион, муниципалитет, поселение, населённый пункт, адрес и телефон. В итоге удалось создать парсер, который корректно распознаёт эти поля и на их основе строить карту. Отдельного упоминания заслуживает функция detectColumnLayout: она собирает все текстовые элементы страницы с их координатами, отбирает те, что попали в верхнюю часть документа и совпали с заголовками, а затем ищет наилучшее совпадение по вертикали, чтобы определить границы колонок.
Для российского рынка инициатива интересна прежде всего как пример обработки открытых данных и повторного использования легаси-инфраструктуры. Хотя таксофоны уже не играют ключевой роли в связи, они остаются важным социальным сервисом для отдалённых населённых пунктов, где нет стабильного мобильного покрытия. Карта PayPhone 2077 может помочь жителям и путешественникам находить ближайшие работающие аппараты, а исследователям — анализировать распределение телекоммуникационной инфраструктуры. В условиях, когда многие компании отказываются от поддержки устаревших технологий, пример Ростелекома показывает, что универсальные услуги связи по-прежнему востребованы. Проект также демонстрирует, как энтузиасты могут создавать полезные инструменты на основе общедоступных документов, не дожидаясь официальных решений. Показательно и то, что разработчик выбрал браузерную обработку: это снижает порог входа для тех, кто хочет проверить или доработать парсер, ведь весь код выполняется на стороне клиента и не требует развёртывания серверной инфраструктуры.
Значимость проекта для российского рынка ИИ и работы с данными выходит за рамки одной карты. История PayPhone 2077 наглядно иллюстрирует типовую проблему: государственные и корпоративные организации нередко публикуют ценную информацию в форматах, которые удобны для отчётности, но не для машинной обработки. PDF с адресами таксофонов — характерный пример «данных, которые как бы существуют». Энтузиаст фактически выполнил работу по превращению неструктурированного документа в структурированный набор данных, пригодный для визуализации и анализа. Такой подход перекликается с задачами, которые обычно решаются с помощью ИИ: извлечение сущностей, распознавание структуры документа, геокодирование. При этом автор обошёлся без тяжёлых моделей, использовав эвристики и координатную кластеризацию — что само по себе показательно для рынка, где не всегда нужна сложная нейросеть, чтобы получить полезный результат. Кроме того, проект поднимает вопрос качества открытых данных: если бы Ростелеком публиковал сведения о таксофонах в машиночитаемом виде, подобные карты могли бы появляться быстрее и точнее.
По сравнению с альтернативными способами поиска таксофонов (например, через официальные справочники или звонки в поддержку), карта предоставляет более наглядный и быстрый доступ к информации. Однако проект пока не интегрирован с базами данных в реальном времени и не отображает статус работоспособности каждого аппарата. Тем не менее, автор планирует развивать проект, возможно, добавляя новые источники данных и улучшая точность геолокации. В перспективе такие инициативы могут привлечь внимание телеком-операторов к проблеме актуализации информации о таксофонах и стимулировать создание официальных интерактивных карт. Открытым остаётся вопрос, насколько долго ещё просуществует сама сеть таксофонов и не последует ли за визуализацией новый виток интереса к этой архаичной, но живой технологии. Ещё один открытый вопрос — насколько легко проект масштабируется на другие регионы и операторов: парсер заточен под конкретную вёрстку PDF Ростелекома, и при изменении формата документа магические константы, вероятно, придётся подбирать заново. Наконец, остаётся неясным, как быстро устаревают данные внутри исходного PDF и обновляет ли оператор файл регулярно — от этого зависит практическая ценность карты для конечных пользователей.