Найти тему

Карта мира прямо в терминале Linux

Оглавление

Периодически на канале выходят статьи, посвященные нестандартным вещам, которые можно делать в терминале Linux-дистрибутивов. Напомню, что в последней заметке мы узнавали с вами про прогноз погоды посредством консоли.

На этом многоообразие того, что можно вытворить в этом черном окошке, которое так пугает новичков и владельцев Windows, не заканчивается и ниже расскажу, а также покажу то, как при помощи терминала Linux можно изучать географию.

Что такое mapscii?

mapscii представляет собой интерактивную карту мира в формате ASCII, которая доступна прямо из терминала. В основе лежат данные, получаемые при помощи OpenStreetMap: некоммерческого веб-картографического проекта по созданию силами сообщества участников подробной географической карты мира.

Скриншот главной страницы проекта OpenStreetMap
Скриншот главной страницы проекта OpenStreetMap

На словах все выглядит просто: разработчики mapscii взяли данные из OpenStreetMap и представили его в форме консольной графики при помощи ASCII. На деле же, все гораздо масштабнее и сложнее и это далее мы увидим.

Установка mapscii

Существует два варианта использования mapscii: установить непосредственно на компьютер или ноутбук или использовать при помощи утилиты telnet (название происходит от сетевонр протокола для реализации текстового терминального интерфейса по сети). Проще выглядит второй вариант, так как для него достаточно открыть терминал и выполнить там команду:

telnet mapscii.me

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

У меня ничего не заработало
У меня ничего не заработало

Вполне возможно это произошло потому, что я использую терминал Konsole, который не имеет каких-либо встроенных функций для отображения карты через telnet. В интернете написано, что идеально для этого подойдет терминал xterm, который я не поленился установить и попробовать команду там, но результат был таким же.

Снова ничего...
Снова ничего...

Безустановочный вариант не сработал, поэтому я перешел на страницу проекта в GitHub и посмотрел какие альтернативные варианты предлагают разработчики. Этих вариантов оказалось два: установить вначале NodeJS на устройство и потом установить mapscii при помощи команд:

npx mapscii (написано, что это современный способ установки)

npm install -g mapscii (видимо, способ для олдов)

Будучи обладателем Manjaro Linux и имея на борту Pamac решил установить все из AUR, откуда подтянулся все тот же NodeJS с нужным сервисом.

Установка mapscii через Pamac в Manjaro KDE Plasma
Установка mapscii через Pamac в Manjaro KDE Plasma

Вишенкой на торте вариантов установки стало то, что mapscii имеется в варианте SNAP-пакета установить который можно (но не нужно) при помощи команды:

sudo snap install mapscii

Как понимаете, этот вариант удобен для тех, кто пользуется дистрибутивом Ubuntu. Другие варианты утилиты в виде AppImage и Flatpak на официальной странице проекта не нашел, хотя подозреваю, что они наверняка есть.

Запуск mapscii

Запускается утилита через терминал при помощи одноименной команды mapscii. После установки в дистрибутив все запустилось и я увидел то, что вы видите на скриншоте внизу.

Карта мира в терминале
Карта мира в терминале

Навигация осуществляется при помощи клавиш-стрелок, приближение/отдаление происходит мышью. Попробуем, например, найти столицу России и посмотреть, как она выглядит в терминале.

Как наблюдаем из скриншотов, можно подробно рассмотреть улицы города, причем названия географических объектов при приближении оказываются написанными на русском языке. Причем детальность настолько подробная, что можно рассмотреть вплоть до названий конкретных заведений.

Нашел Представительство губернатора своего региона (внезапно)
Нашел Представительство губернатора своего региона (внезапно)

Побродив по карте Москвы, решил отправиться в Исландию и перешел к Рейкьявику.

Добро пожаловать в Исландию
Добро пожаловать в Исландию

Прокручивается карта словно глобус, то есть при зажимании стрелок влево или вправо перемещение зациклиться и вы будете пролистывать карту мира без остановки. Для выхода из просмотра можно нажать клавишу Q.

Подведем итоги

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

Из недостатков бы выделил только сложности с установкой и отсутствием доступа по telnet, но опять-таки, вполне возможно, что это я какой-то криворукий и что-то не там нажал и не то ввел. Отпишитесь в комментариях те, кто попробовал запуск карт через telnet, сработало ли у вас.

Что касается сценариев использования mapscii, то честно говоря, сложно представить, что кто-то застрял в огромном городе с разряженным телефоном, но с ноутбуком в руках и воспользовался mapscii, чтобы найти дорогу к отелю. Поэтому данная утилита является, в первую очередь, демонстрацией возможностей терминала и свободного ПО, а уже во-вторых, это что-то интересное, что можно потыкать в терминале на протяжении нескольких дней. Хотя, не исключаю варианта, что у кого-нибудь могут возникнуть иные реально работающие идеи применения этого сервиса.

Расскажите в комментариях, хорошо ли вы знаете географию и часто ли путешествуете? Если часто находитесь в пути, то какими картами предпочитаете пользоваться: отечественными от Яндекс или 2ГИС или предпочитаете разработки от Google и Apple.