Карты для всех, даром

На форуме «Проекты Петербурга» обсуждают, в основном, дорожное строительство. Где ремонтируют, где перекрыли, где прокладывают (или уже отменили) новое шоссе. С локализацией темы обсуждения всегда проблемы: «53-81 км — это где?» Пять лет назад нормальным было дать ссылку на карты яндекса или вставить картинку, но XXI век на дворе, лифлету недавно три года исполнилось, почему нельзя просто вставить карту? Почему на местном велосипедном форуме дают ссылки на монструозный gpsies, а марафонщики до сих пор скриншотят пираченный OziExplorer?

Будучи программистом, я постоянно чувствовал, что вся эта дремучесть технологий — моя вина, но только месяц назад взялся за решение задачи. Несмотря на комментарий к коммиту от 1 октября «almost final», и через три дня — «вероятно, последний коммит», разработка идёт до сих пор, но помня об изречении, что дела нельзя закончить, можно лишь прекратить, сегодня я объявляю о выходе версии 1.0 библиотеки MapBBCode: элементарного способа встроить рисование и отображение карт во что угодно.

Основой встраивания стал bb-код [map]...[/map], внутри которого описываются объекты карты. Это простая строка текста, которую можно скопировать куда угодно или редактировать вручную. Функционально это упрощённый GeoJSON. Небольшая javascript-библиотека превращает его в карту на Leaflet и позволяет править не подбором цифр, а рисуя на карте. Посмотреть на неё в деле можно на сайте проекта. Там же есть ссылки на модули для форумов phpBB: в понедельник «Проекты Петербурга» первыми встроили карты, на очереди — велофорумы. Когда-нибудь, надеюсь, библиотеку встроят в vBulletin, SMF, WordPress и MediaWiki.

Как пример использования библиотеки, родился сайт MapBBCode Share. Идея проста: если хранить строки в базе, получится неплохой сайт для обмена картами, простой и доступный, как pastebin или imgur. А из окошка просмотра кода можно скопировать текст на форум, его поддерживающий (или наоборот). Образ сайта в голове начал потрескивать, когда ГИС-Лаб воспользовался сервисом для планирования картовстречи, выложив ссылку на редактирование в открытый доступ. А затем я добавил импорт и экспорт в десяток форматов, библиотеку кодов (чтобы не нужно было хранить закладки локально) и API. Оказалось, что обмен картами — лишь малая часть открывшихся возможностей.

Теперь можно планировать маршрут поездки вместе с друзьями, расставить маркеры, затем поместить карту на форум, и за день до выезда участники прямо из форума загружают GPX с вейпоинтами. Можно импортировать CSV (алгоритм определения его формата эпичен) и сразу получить HTML без внешних зависимостей. Никаких iframe — в отличие от всех остальных сайтов, MapBBCode Share выдаёт полноценную страницу без ссылок на себя. Загрузка треков, сгенерированных роутером OSRM, быстрое редактирование poly-файлов и неминуемый экспорт в GeoJSON — сайт конкурирует не только с geojson.io и uMap, но даже с JOSM. Безопасность на высоте: логин через OpenID (гуглояндексы подходят), немедленно хэшируется, поэтому даже администратор не знает, кто пользуется сайтом, при этом хэш никогда не покидает сервера, API для фильтрации карт по пользователю нет.

Итог работы — более 200 килобайт кода, за 60 килобайт документации, 7 новых плагинов для Leaflet, всё под максимально свободной лицензией WTFPL. Разработка продолжается, но теперь изменения протоколируются, и автор ответственен за обратную совместимость. Пользуйтесь MapBBCode Share и встраивайте модуль в новые форумы и блоги. Сделаем [map] стандартом, а обмен картами — не более сложным, чем обмен картинками или кодом.

Поделиться
Отправить
Запинить

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

25 комментариев
Vadimi 2013

Отличное начинание!

Sergey Astakhov 2013

Надо встроить в движок ШТОСМ-а. А то XXI век на дворе, а в заметке всего лишь картинки вместо карты. :)

vvoovv 2013

Что нужно сделать для встраивания в forum.openstreetmap.org ?

Илья Зверев 2013

Модификацию для FluxBB 1.4.

Дмитрий Кудряшов 2013

Приятно, что «Проекты Петербурга» был первым.

Shoorick 2013

Надо будет к вордпрессу такое прикрутить — выглядит симпатичнее и легче, чем Maps Marker.

Snooker 2013

Реально ли для joomla плагин/модуль сделать?

Илья Зверев 2013

Библиотеку можно подключить ко всему, где есть редактирование и отображение сообщений. В том числе и к joomla. Вопрос не в том, можно ли, а в том, кто это будет делать. У меня в планах этой CMS нет — может, кто-нибудь из более опытных пользователей захочет потратить пару дней. Инструкция должна помочь.

fserges 2013

Итог работы — более 200 килобайт кода, за 60 килобайт документации, 7 новых плагинов для Leaflet


Вау!

jekader 2013

Ух ты, какая крутота! Надо подкинуть на пару форумов. Модуль для phpbb есть уже?

Илья Зверев 2013

Ссылки на все готовые модули выкладываются на http://mapbbcode.org . Для phpBB есть.

UrSuS 2013

Ура! Ура! Ура! наконец-то долгожданный функционал!

Жаль что к SOTM Baltics не был готов, я как раз искал удобный инструмент для планировки маршрут, но лучше поздно чем никогда! :)

dkiselev 2013

А ктонибудь общается с википедистами? К викидвижку прикрутить даже в некотором смысле проще чем к форумнуму.

Shoorick 2013

Пробую разобраться с вордпрессовыми [шорткодами] — вроде, есть надежда привязать MapBBCode к вордпрессу.
Результаты экспериментов будут лежать на https://github.com/shoorick/mapbb-wordpress

xerx 2013

А к форумам на vBulletin можно «прикрутить»?

jekader 2013

@Zverik да, у меня не открывалась страница проекта. Открылась уже когда написал комментарий, там и увидел плагин.

dkiselev 2013

С vBulletin не очень понятно. Тоесть сделать то конечно можно есть даже куций туториал, но вопрос с закрытостью где взять исходники для попробовать, куда потом релизить.

bopoh13 2013

Зверик, ты не просто журналист, а ещё и программист. Не Зверик, а Зверище! ;)

xerx 2013

Релизить то понятно куда — www.skyscrapercity.com/
На счёт исходников вопрос сложнее...

dkiselev 2013

xerx не, я про то что у большинства проектов есть в том или ином виде хранилище для плагинов или хотябы способ добавиться в лист плагинов.

Lull 2013

а с IPB форумом скрипт будет работать?

xmd5a 2013

А может быть сделать кнопку Edit in JOSM? Для упрощения процесса. Сейчас надо сохранять в .osm и открывать в josm.

lollo 2013

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

Мне всегда не хватало возможности рассчитать время прибытия в места стоянок. Для этого надо указывать среднюю скорость движения по маршруту, которая в разных местах может быть разной (покрытие, подготовка группы и пр.), рассчитывать время на обеды и ужины и т. д., и т. п.

Ничего подобного я не нашел, поэтому в какой-то момент решил сделать сам. Получилась не библиотека, а целый ресурс с набором приложений, с помощью которых можно организовать поход. Это работа с маршрутом, обсуждения, контрольные списки, отчеты о поездках и пр. Предлагаю заценить: http://www.bptrips.com/trips/ :)

Shoorick 2013

http://www.bptrips.com/

Вы должна участвовать или создать поход!

Должна?

lollo 2013

Упс. Досадная очипятка. :) Спасибо, что сообщили.

Sergey Astakhov 2013

Упс. Досадная очипятка.

Их там много. :)
«Забили пароль?»

siberiano 2013

Пишу на Скайскрэйпер запрос встроить эту библиотеку.

А есть ли возможность вставить кнопку, заскриншотить и вставить не карту, а просто картинку и ссылку на интерактивную карту? Чтобы не ждать от форума интеграции.

Илья Зверев 2013

но зачем? ты написал плагин для vbulletin? или ожидаешь от администраторов одного из крупнейших форумов в интернете программизма на благо общества?
скриншотить и вставлять можно было и до моего плагина.

siberiano 2013

Нет — так нет. Писать не буду. От твоего поучительного тона у меня всякое желание делать что-то пропадает.

Популярное