en ru | docs

FAQ

Как сохранить выбранный слой в bb-коде?

Код [map] не хранит презентационную информацию (слой, размеры, заголовок). Он предназначен для хранения только геометрических объектов с атрибутами: как GeoJSON, но удобнее для форумов. В этом качестве он не зависит от библиотеки или способа представления. Можно рисовать объекты где и как угодно, но при соблюдении формата итоговая карта будет содержать всё, что намеревался показать её автор.

BB-код карты хранит что показать, не как. Единственное исключение — параметры масштаба и координат тега [map], которые можно считать отдельным объектом: когда содержимое тега отсутствует, эти параметры позволяют сфокусировать карту на предмете обсуждения. Использование их при наличии объектов не рекомендуется, и библиотека не генерирует такой код. Для фокусирования внимания на разных частях карты лучше приспособлены маркеры, а непредсказуемые размеры панелей делают бессмысленным подбор значений масштаба.

Какие слои вы посоветуете для карт на форуме?

В таком порядке:

Стоит ли включать интеграцию с MapBBCode Share для форума или блога?

Хранение карт на центральном сервере (не обязательно share.mapbbcode.org) даёт вашим пользователям три потенциально полезных возможности:

  1. Совместное редактирование: никаких ковыряний в правах на редактирование сообщений, просто выдайте ссылку на редактирование внешней карты. Изменения автоматически появятся на встроенной карте.
  2. Выгрузка во множество форматов, включая GPX и CSV. Автор темы может выложить маршрут предстоящей поездки, и все участники потом скачают его сразу себе на GPS-навигаторы.
  3. Единая карта для разных форумов и сайтов: ссылку на внешнюю карту можно вставить и в запись в блоге, и в другую тему на форуме.

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

Внешние карты не загружаются в браузере Internet Explorer

Откройте «Свойства обозревателя», там вкладку «Безопасность», нажмите кнопку «Другой…» и найдите «Доступ к источникам данных за пределами домена» в разделе «Разное». Ткните во «Включить» и обновите страницу. Эта настройка по умолчанию выключена, и автор не знает способа её включить. Загляните в соответствующий тикет и отправьте пул-реквест в MapBBCode.Share.js, если знаете, как решить эту проблему.

Почему некоторые числа выводятся серым цветом в панели конфигурации?

Кнопка под переключателем «Просмотр/Редактор» определяют, как карта встраивается на страницы форума или блога. Её значения обессмысливают некоторые размеры. Например, когда редактор отображается во встроенной панели, размеры окна редактора не используются, поэтому они выводятся бледнее других.

Зачем нужен каталог mapbbcode в комплекте с плагином?

Он содержит не только три файла библиотеки MapBBCode, но и другие библиотеки, как обязательные, так и потенциально полезные, вроде слоя космоснимков Bing. Только одна из библиотек хранится в CDN: Leaflet. В идеале весь каталог мог бы храниться в едином месте (но с возможностью всё скачать — например, для форума в интранете), но есть проблема. Я не знаю, где взять бесплатный и надёжный CDN. Если вы занимались таким вопросом, свяжитесь с автором.

Вся библиотека — это, по сути, один файл?

Да. Например, используя только mapbbcode.js, можно добавить на страницу карту из bb-кода или с сервера MapBBCode Share:

<!DOCTYPE html>
<meta charset="utf-8">
<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.6.4/leaflet.css" />
<script src="http://cdn.leafletjs.com/leaflet-0.6.4/leaflet.js"></script>
<script src="mapbbcode.js"></script>
<div id="test"></div>
<script>
var mapBB = new MapBBCode();
mapBB.showExternal('test', 'gttvz');
</script>

Хочу отображение длины линий

Включите скрипт Param.Measure.js из репозитория MapBBCode, и строка с длиной или площадью автоматически появится во всплывающей панели объекта. Этот и другие скрипты каталога param демонстрируют добавление функциональности в редактор.

Почему нельзя добавлять подписи к линиям и полигонам?

Потому что визуально не очевидно, можно ли кликать на объект. В отличие от маркеров, для которых ожидаешь подписи. Разумеется, при желании это можно переопределить, изменив скрипт Param.Text.js и собрав свою версию библиотеки.

Какой слой показывается по умолчанию?

Первый. Самый верхний в интерфейсе конфигурации. А не тот, что был выбран на момент нажатия кнопки «сохранить настройки».

Порядок слоёв в панелях отличается от того, что указан в свойстве layers

Это ошибка в библиотеке Leaflet.

Хочу видеть в списке слоёв страницы конфигурации нестандартный слой

Добавьте подобную строку в скрипты шаблонов страниц, после подключения mapbbcode-config.js:

window.layerList.list['Layer Name'] = 'L.tileLayer("http://...", { ... })';

Конкретнее, хочу Google Maps в форуме

Слои Google Maps не включены по умолчанию, потому что Google — это зло. И иногда требуют денег за использование карт. И вам следует продвигать бесплатные и свободные карты, то есть, OpenStreetMap. Но, конечно, способ подключить слои Google существует, и с версии 1.1 очень прост. Добавьте эти две строки в шаблоны страниц сразу после подключения mapbbcode-config.js (внимание на путь к файлу):

<script src="http://maps.google.com/maps/api/js?v=3&sensor=false"></script>
<script src="{mapbbcode}/proprietary/Google.js"></script>

То же и для остальных проприетарных слоёв: Bing, Яндекс и т.п.

Мой вопрос необычен, что делать?

Задайте его на гитхабе или автору почтой.