Шаблон:Wl

Материал из Викиэнциклопедия Московской областей

Шаблон {{wl}} является элементом движка WikiLeaflet и создаёт на вики-странице географическую карту.

Имеет единственный необязательный параметр, обыкновенным значением которого является произвольная комбинация одного или нескольких вложенных шаблонов {{wl}}, имеющих специальное значение первого параметра и задающих параметры карты.

Таким образом, простой вызов шаблона {{wl}} создаёт на вики-странице карту. Чтобы управлять видом и содержанием этой карты, достаточно поместить внутрь этого шаблона (в его первый параметр) несколько других (вложенных в него) вызовов шаблона {{wl}}. Первый параметр этих вложенных шаблонов и их последующие параметры позволяют контролировать изменения, налагаемые на карту.

Список специальных значений первого параметра

{{wl|редактор}} или {{wl|edit}}
Дополняет географическую карту возможностью считывания координат:
  • при каждом таскании карты мышкою, а также при увеличении и уменьшении карты под нею появляется код шаблона {{wl|центр|lat|lon|zoom}}, все параметры которого ужé заполнены;
  • при каждом жмяке мышóю по свободному месту карты на этом месте появляется всплывающее пояснение, содержащее код шаблона {{wl|точка|lat|lon}}, первые три параметра в котором ужé заполнены.
Эти коды могут быть затем выделены (в Файерфоксе — троекратным жмяком мышóю) и скопированы в буфер обмена.
Следует отметить, что в режиме редактирования страницы (после нажатия кнопки «Предварительный просмотр») карта и без того автоматически обретает возможность считывания координат, поэтому ставить вызов «{{wl|edit}}» необходимо только в том случае, когда эта возможность необходима после сохранения страницы (например, на служебной странице помощи).
{{wl|высота|height}}
Задаёт высоту карты равной height пикселов. Этот второй параметр (height) должен быть натуральным числом.
{{wl|центр|lat|lon|zoom}}
Задаёт начальное положение карты широтою lat, долготою lon и увеличением zoom.
{{wl|точка|lat|lon|text|типЗначка|типКластерногоЗначка|рейтингВКластере}}
Создаёт на карте точку широтою lat и долготою lon.
Параметр text, если не пуст, создаёт пояснение для этой точки, всплывающее по жмяку мышóю.
Параметр типЗначка, если не пуст, задаёт тот значок, которым точка на карте будет помечена. Различные значки можно задавать при помощи параметра {{wl|значок|…}} (см. ниже).
Параметр типКластерногоЗначка, если не пуст, задаёт тот значок, которым будет отмечен кластер точек, включающий данную, при условии что этот кластерный значок у них одинаков.
Та точка, у которого параметр рейтингВКластере будет выше, даст свой значок всему кластеру.
Также могут использоваться дополнительные параметры надписей.
{{wl|значок|…}}
Сложный вариант шаблона, описывающий значок (маркер), которым в·дальнейшем можно помечать точки на·карте. Содержит до·двенадцати параметров:
  • Первым параметром служит слово «значок» (без·кавычек).
  • Вторым параметром служит идентификатор значка.
  • Третий параметр задаёт имя·файла, содержащего изображение значка. Файл должен·быть загружен в·ту·же·вики, что·и·карта, поэтому указывается только хвост·имени, следующий за·адресом папки картинок·вики. Скажем, для·файла с·адресом «http://имя.сервера.вики/images/f/f3/filename.png» указывается имя «f/f3/filename.png».
  • Четвёртый и пятый параметры·— числа, задающие (в·пикселах) ширину и·высоту значка.
  • Шестой параметр задаёт имя·файла, содержащего изображение тени·от·значка. (Именем служит хвост адреса, аналогично третьему параметру.) Изображение тени подкладывается под·изображение самогó·значка таким·образом, чтобы левые верхние углы изображений совпали, и·поэтому должно·быть нарисовано с·учётом·этого. Этот·параметр не·обязателен, если изображение тени не·планируется или·если оно включено в·изображение самогó·значка. Тем·не·менее, отдельная·тень полезна в·тех случаях, когда сразу несколько значков накладываются друг·на·друга (тогда тени отходят на·второй·план).
  • Седьмой и восьмой параметры·— числа, задающие (в·пикселах) ширину и·высоту тени. (Эти·параметры обязательны только тогда, когда тень указана.)
  • Девятый и десятый параметры·— числа, задающие (в пикселах) расстояние (по·горизонтали и·по·вертикали соответственно) от·левого верхнего угла значка до·той точки на·карте, на·которую значок ставится. Эти·параметры не·обязательны; при·их·отстутствии расстояние по·вертикали принимается равным высоте·значка, а·по·горизонтали·— половине ширины значка, так·что прямоугольный значок оказывается стоящим на·середине нижней стороны, а·круглый·— на·нижней·точке вертикального диаметра.
  • Одиннадцатый и двенадцатый параметры·— числа, задающие (в·пикселах) сдвиг по·горизонтали вправо и·сдвиг по·вертикали вниз от·той точки на·карте, на·которую значок ставится, до·той точки, на·которую ляжет кончик тени от·пояснения, всплывающего по·жмяку·мышóю. Отрицательные числа указывают на·сдвиг в·противоположном направлении (влево и·вверх соответственно). Эти·параметры не·обязательны; при·их·отстутствии сдвиг по·горизонтали принимается нулевым, а·сдвиг по·вертикали·— отрицательным (то·есть направленным вверх), причём по·модулю на·два·пикселя меньшим, чем·десятый параметр (то·есть чем·расстояние от·точки на·карте до·верха значка). Так·как размер тени от·пояснения как·раз равен двум·пикселам, то·получается, что·если параметры с·девятого по·двенадцатый (включительно) не·заданы, тогда прямоугольному значку пояснение станет указывать на·середину верхней стороны, а·круглому·— на·верхнюю·точку вертикального диаметра.
  • Тринадцатый параметр·— тип значка, который будет использоваться для·кластера точек, в·который попадёт данная точка, когда установлен шаблон {{wl|кластер|…}}, при·условии, что·эти типы совпадают.
  • Четырнадцатый параметр — рейтинг в кластере для точек этого типа.
Также могут использоваться дополнительные параметры надписей.
{{wl|тайлы|имяСервераТайлов}}
Позволяет выбрать (в зависимости от значения второго параметра), с какого сервера будут первоначально подкачиваться

тайлы, то есть двумерные плитки 256×256 пикселов, из которых формируется карта. Допустимые значения второго параметра:

osm
Используется основной сервер тайлов OpenStreetMap (рендерер «mapnik»).
Увеличение (zoom) в пределах от 0 до 18.
local
Тайлы OpenStreetMap берутся из папки «/tiles/» на сервере вики. (Предполагается, что они скопированы туда заблаговременно с сервера OpenStreetMap.)
Этот параметр предназначен для употребления или тестирования вики в интранете, закрытом от Интернета.
(В общедоступных вики следует использовать не собственную копию, а общедоступную версию тайлов OpenStreetMap, как наиболее свежую.)
cycle
Используется сервер тайлов OpenCycleMap (карта для велосипедистов).
Увеличение (zoom) в пределах от 0 до 16.
mapquest
Используется сервер тайлов MapQuest (данные OpenStreetMap, в небольших масштабах дополненные элементами физической карты мира).
Увеличение (zoom) в пределах от 0 до 18.
openaerial
Используется сервер тайлов MapQuest Open Aerial (данные спутниковой съёмки и аэрофотосъёмки).
Увеличение (zoom) в пределах от 0 до 11.
osmosnimki
Используется сервер тайлов Scanex (Kosmosnimki.Ru: данные OpenStreetMap с изменёнными стилями и рендерингом).
Увеличение (zoom) в пределах от 0 до 17.
kosmosnimki
Используется сервер тайлов Scanex (Kosmosnimki.Ru: данные спутниковой съёмки — базовое покрытие Kosmosnimki.Ru).
Увеличение (zoom) в пределах от 0 до 18.
openmapsurfer
Используется сервер тайлов OpenMapSurfer (данные OpenStreetMap, подготовленные географическим факультетом Гейдельбергского университета в Германии).
Увеличение (zoom) в пределах от 0 до 18.
Подробнее о характеристиках некоторых тайловых серверов рассказывает статья в вики OpenStreetMap.
В правом верхнем углу карты будет отображён переключатель тайлов.
{{wl|GeoJSON|…}}
Вторым параметром этого варианта шаблона является код в формате GeoJSON, описывающий географические объекты, накладываемые на карту.
Второй параметр следует непременно обрамлять парою тегов <nowiki></nowiki> — в противном случае квадратные и особенно фигурные скобки GeoJSON могут интерпретироваться как элементы оформления гиперссылок и шаблонов MediaWiki.
В настоящее время возможность создавать и редактировать данные geoJSON средствами wl отсутствует. Для этого применяются внешние редакторы. Как вариант, для подготовки данных, предлагается следующая схема:
  • С помощью GoogleMaps создаются объекты (кривые линии, полигоны, точки и т.д., пример), и с его же помощью эти объекты импортируются в формат KML (жмяком по "KML" в левой части экрана) после чего файл с данными в формате KML сохраняется на диске.
  • Копируем содержимое этого файла и вставляем в нижнее поле на этой странице. После вставки данных выбираем формат KML в выпадающем меню Format и жмем на кнопку add feature. Тем самым мы добавили все созданные в GoogleMaps объекты на карту "конвертера". Далее, в выпадающем меню Format, выбираем GeoJSON и жмякаем на требуемый объект в карте, после чего в правой части страницы должен появиться требуемый набор данных в формате geoJSON. В целом этот код уже готов для вставки в wl.
  • Для редактирования цвета объекта необходимо удалить "styleUrl":"#style*" и вставить "style":{"color":"#хеш_цвета"}
{{wl|кластер|расстояние|разделитель|тип значка}}
Если·будет установлен этот·шаблон с·положительным вторым параметром, значки, оказавшиеся друг к·другу не·дальше, чем·на расстояние пикселей, будут объединены. При·этом, если·одна подпись к·значку содержит другую, будет выведена только она, а·если·нет·— подписи будут склеены через разделитель. Будут объединены также всплывающие окна. Для·объединённой точки будет использован значок, заданный тринадцатым параметром шаблона точки:{{wl|точка|…|13=тип значка для·объединения}}, при·условии, что·все они у·объединяемых точек одинаковые, в·противном случае будет использован тип значка. Объединённая точка попадёт во все категории, в которые попадали отдельные точки. При·изменении масштаба, значки могут быть·разгруппированы или·сгруппированы.

Дополнительные параметры надписей

В шаблонах {{wl|точка|…}} и {{wl|значок|…}} может использоваться дополнительный именованный параметр «надпись=текстНадписи», вызывающий появление означенной им надписи:

  • Если он задан в шаблоне {{wl|точка|…}}, то тогда этот параметр вызывает появление надписи у точки, означенной этим шаблоном.
  • Если он задан в шаблоне {{wl|значок|…}}, то тогда этот параметр вызывает появление надписи у всех точек, помеченных этим значком.

Параметру «надпись» могут сопутствовать другие именованные параметры, задающие смещение надписи:

сдвигНадписи
Задаёт величину горизонтального сдвига надписи (в пикселах).
подъёмНадписи
Задаёт величину вертикального подъёма надписи (в пикселах).

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

Категории

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

Если добавить в первый параметр шаблона {{wl|…}} вызов {{wl|фильтры}}, то к инструменту выбора тайлов в правом врхнем углу карты добавится список всех используемых категорий, показ которых пожно включать и выключать независимо друг от друга. Некатегоризированные объекты будут показываться в любом случае.

Динамические карты

Формирующиеся на стороне сервера

Возможно формирование серверных автоматических карт, на основании имеющейся семантической информации о географических координатах. Для этого надо вложить в шаблон {{wl}} запрос Semantic MediaWiki [[{{#regex:ask|/^(Справка:)?/ = Справка:}}|{{#{{#regex:ask|/^(справка:)?//}}:}}]], возвращающий список точек, GeoJSON или значков, оформленный с помощью параметра template=wl или с использованием другого шаблона, вызывающего {{wl}}. Такие карты будут обновляться только с перепарсингом страницы, на которой находятся. Шаблон:Section-stub

Формирующиеся на стороне клиента

Для часто обновляемых геоинформационных данных рекомендуется использовать карты, подкачивающие данные с сервера с помощью API MediaWiki.

Для обращения к API, нужно внутри одного из параметров шаблонов {{wl|точка|…}}, {{wl|GeoJSON|…}} или {{wl|значок|…}} вставить вызов {{wl|свойство|(Название свойства Semantic MediaWiki)|разделитель=(разделитель нескольких значений)}}, который подставит возвращённое значение свойства Semantic MediaWiki (пустую строку, если оно не установлено).

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

Для подстановки названия страницы, использовать ? или {{wl|свойство|_}}.

Если для страницы или подъобекта SMW определено более одного значения свойства, то, если задан параметр разделитель, возвращённые значения будут склеены им, иначе будет использовано первое. Если после подстановки значения свойства SMW требуемый параметр останется пустым, то будет использовано значение WikiLeaflet по умолчанию.

Кроме того, следует задать параметр условия, примерно в такой же форме, как и в функции [[{{#regex:ask|/^(Справка:)?/ = Справка:}}|{{#{{#regex:ask|/^(справка:)?//}}:}}]], но без квадратных скобок, с использованием знака | для конъюнкции, вместо пробела и обёрнутым в {{#vardefine:txt = <{{#regex:nowiki|/^справка:/ui=}}>...</{{#regex:nowiki|/^справка:/ui=}}>}}[[{{#regex:nowiki|/^(Справка:)?/i = Справка:}}|{{#var: txt}}]]. Шаблон:Section-stub