Справка:Карты

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

Шаблон:Руководства В проекте существует возможность размещения в статьях интерактивных географических карт.

Картографическая информация поступает из баз данных OpenStreetMap, Osmosnimki и др. и отображается на страницах проекта при помощи движка WikiLeaflet, в свою очередь использующего библиотеку Leaflet.

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

Вы находитесь на справочной странице «Справка:Карты», где оформление карт объясняется подробно и на примерах. (Существенно более краткую справку по параметрам шаблонов {{wl}} и {{карта в рамке}} вы можете найти на страницах самих шаблонов.)

Первоначальное создание карты[править код]

Чтобы поместить карту на какой-либо странице, достаточно вызвать шаблон {{wl}} без параметров:

{{wl}}

Результат применения шаблона будет таков:

AjaxLoader Indicator Lite Green.gif Загружается карта…

Свойства по умолчанию[править код]

Когда шаблон не имеет параметров, тогда многие свойства такой карты определяются значениями по умолчанию:

  • Высота карты составляет 500 пикселов.
  • Уровень увеличения равен тринадцати. (Понятие «уровень увеличения» имеет отношение к масштабу карты: на нулевом уровне увеличения карта всей планеты помещается внутрь квадрата размером 256×256 пикселов, а каждый последующий уровень сопровождается двукратным ростом масштаба, то есть удвоением размера карты.)
  • Используется та же раскраска карты, что и на сайте OpenStreetMap.

По ширине карта занимает всё доступное ей пространство страницы, но не более того (то есть не накладывается на предшествующие ей иллюстрации или оглавление, когда те прижаты к правому или левому краю страницы).

Интерактивность карт[править код]

Все созданные шаблоном {{wl}} географические карты обладают интерактивностью, то есть читатель (или автор) энциклопедии может управлять ими:

  • Ухватив карту мышью (то есть подведя к карте курсор мыши и нажав левую клавишу, а затем не отпуская её), можно таскать карту в произвольном направлении (север, юг, восток, запад…), открывая новые части карты, соседствующие с изображённою. Пользователи мобильных устройств (у которых нет мыши, но есть сенсорный экран) могут таскать карту пальцем.
  • В левом верхнем углу карты нарисованы кнопки «плюс» и «минус», позволяющие увеличивать или уменьшать уровень увеличения.
  • Дважды ткнув какую-либо точку карты (мышью или пальцем), можно увеличить уровень увеличения и одновременно поместить эту точку в центр карты — этим приёмом пользуются при необходимости рассмотреть именно это место поподробнее.

Управление параметрами карты (на примере высоты)[править код]

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

Так, например, чтобы изменить высоту карты, используется внутренний шаблон {{wl}}, первым параметром которого является слово «высота», а вторым — значение высоты (число пикселей).

Вот пример кода, уменьшающего высоту карты до 250 пикселов:

{{wl|1=
{{wl|высота|250}}
}}

Результат применения этого кода будет таков:

AjaxLoader Indicator Lite Green.gif Загружается карта…

250

Как видите, эта карта по высоте вдвое меньше, чем предыдущая.

Внутренний шаблон {{wl}} является частью первого параметра внешнего шаблона {{wl}}, причём номер параметра («1=») указан в явном виде, чтобы дать подсказку механизму шаблонов. (Подробности об этом — в подразделе «Неопределённые и пустые параметры» справочной страницы «Механизм шаблонов».)

Указание центра карты, уровня увеличения и границ[править код]

Чтобы указать центр карты (то есть основной отображаемый объект) и задать желаемый уровень увеличения, используется внутренний шаблон {{wl}}, первым параметром которого является слово «центр», а затем следуют значения координат (географической широты и долготы) центра карты и желаемое значение увеличения.

Вот пример кода, показывающего карту Московской области:

{{wl|1=
{{wl|центр|55.63|37.5|7}}
{{wl|высота|450}}
}}

Результат применения этого кода будет таков:

AjaxLoader Indicator Lite Green.gif Загружается карта…

55.6337.57 450

В этом примере мы также изменяем и высоту карты (для закрепления сведений, изложенных в предыдущем абзаце).

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

Если не указать центр, он будет подобран автоматически как центр минимального «прямоугольника», включающего все выводимые объекты. Если не указать увеличение, оно будет подобрано так, чтобы уместились все объекты и центр (когда он задан явно).

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

Режим считывания координат[править код]

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

Движок WikiLeaflet позволяет существенно ускорить дело: после нажатия кнопки «Предварительный просмотр» карта, показываемая редактору вики, обретает дополнительные возможности и функции, позволяющие непосредственно считывать с неё координаты: сама карта станет подсказывать вид шаблонов, необходимых для указания её координат и увеличения.

На служебных и справочных страницах иногда бывает необходимо, чтобы карта осталась в этом режиме и после сохранения шаблона, а не только при предварительном просмотре. Для этой цели используется внутренний шаблон {{wl}}, первым параметром которого является слово «редактор» или «edit».

Вот пример кода, переводящего карту Московской области (взятую из предыдущего абзаца) в режим считывания координат:

{{wl|1=
{{wl|центр|55.63|37.5|7}}
{{wl|высота|450}}
{{wl|редактор}}
}}

Результат применения этого кода будет таков:

AjaxLoader Indicator Lite Green.gif Загружается карта…

55.6337.57

450

Как вы можете убедиться на опыте, в этом режиме карта получает следующие возможности:

  • Если таскать карту или изменять уровень её увеличения, то под картою появляются коды шаблонов {{wl|центр|...}} и {{wl|границы|...}} все параметры в которых уже заполнены и соответствуют наблюдаемым параметрам карты. Поэтому остаётся только выделить этот код (в Файерфоксе, например, это делается тройным тычком мыши) и скопировать его в код шаблона карты, чтобы придать карте именно те центр, уровень увеличения и границы, которые только что были наглядно достигнуты тасканием карты, увеличением и уменьшением масштаба её.
  • Если ткнуть точку на карте, то на карте появляется код шаблона {{wl|точка|...}}, заполненного координатами этой точки. (В форме {{wl|точка|...}} шаблон служит для создания пометок на карте — мы поговорим об этом далее.)

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

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

Обрамление карты рамкою, управление шириною[править код]

Иногда возникает необходимость поместить карту в рамку и снабдить эту рамку подписью — наподобие того, как выглядят изображения, снабжённые параметром «frame» или «thumb».

Для этой цели основной (внешний) шаблон {{wl}} следует заменить шаблоном {{карта в рамке}} или его синонимом {{mapframe}}; первым параметром этого шаблона является подпись для рамки, а совокупность дополнительных (внутренних) шаблонов {{wl}} становится вторым его параметром.

Так, например, код карты Московской области принимает следующий вид:

{{карта в рамке
|Московская область
|2=
{{wl|центр|55.63|37.5|7}}
{{wl|высота|450}}
}}

Результат применения этого кода будет таков:

AjaxLoader Indicator Lite Green.gif Загружается карта…

55.6337.57 450
Московская область

У шаблона {{карта в рамке}} есть параметр ширина (и его синоним width), позволяющий ограничить ширину карты (значением параметра является число пикселов ширины). В этом случае положение карты подобно положению иллюстрации с параметром «thumb»: карта прижимается к правому краю страницы, а последующий текст статьи обтекает карту слева.

AjaxLoader Indicator Lite Green.gif Загружается карта…

55.6337.56 225
Московская область

Вот пример — код карты Московской области с ограниченной шириной (и с пониженным уровнем увеличения, чтобы область поместилась на карте):

{{карта в рамке
|Московская область
|2=
{{wl|центр|55.63|37.5|6}}
{{wl|высота|225}}
|ширина=300
}}

Итог выполнения этого примера см. справа.

Карту можно расположить не справа, а слева от текста, если параметру float придать значение left.

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

Пример:

{{карта в рамке
|Московская область
|2=
{{wl|центр|55.63|37.5|6}}
{{wl|высота|225}}
|ширина=500
|центр=да
}}

Результат применения этого примера:

AjaxLoader Indicator Lite Green.gif Загружается карта…

55.6337.56 225
Московская область

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

Галереи карт[править код]

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

Пример:

{{строчный блок|1={{карта в рамке
|Московская область
|2=
{{wl|центр|55.572|37.419|6}}
{{wl|высота|225}}
|ширина=270
}}}}
{{строчный блок|1={{карта в рамке
|Тульская область
|2=
{{wl|центр|53.69|37.463|6}}
{{wl|высота|225}}
|ширина=150
}}}}
{{строчный блок|1={{карта в рамке
|Ульяновская область
|2=
{{wl|центр|53.56|47.9|6}}
{{wl|высота|225}}
|ширина=230
}}}}

Результат применения этого примера:

AjaxLoader Indicator Lite Green.gif Загружается карта…

55.57237.4196 225
Московская область
AjaxLoader Indicator Lite Green.gif Загружается карта…

53.6937.4636 225
Тульская область
AjaxLoader Indicator Lite Green.gif Загружается карта…

53.5647.96 225
Ульяновская область

Выбор тайлов[править код]

Используемые по умолчанию тайлы задаются шаблоном {{wl|тайлы|имяСервераТайлов}}. Допустимые значения второго параметра: osm, cycle, mapquest, openaerial, hydda, openmapsurfer, esriwp, thundertr. В ходе работы пользователь может выбирать тайлы с помощью переключателя в правом верхнем углу.

Динамические карты[править код]

Формирующиеся на стороне сервера[править код]

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

Пример автоматической карты:

{{На карте
 | title=Города Московской области
 | tiles=osm
 | select=[[Категория:Города Московской области]]
}}

Шаблон:На карте

Формирующиеся на стороне клиента[править код]

Для часто обновляемых геоинформационных данных рекомендуется использовать карты, подкачивающие данные с сервера с помощью API MediaWiki. Для этого достаточно завернуть код карты целиком в тег {{#vardefine:txt = <{{#regex:csidiv|/^справка:/ui=}}>}}[[{{#regex:csidiv|/^(Справка:)?/i = Справка:}}|{{#var: txt}}]]:

Пример:

<csidiv>{{wl|1=
{{wl|фильтры}}
{{wl|кластер|8||default}}
{{#ask:[[Новость:+]] [[Текст::+]] [[Широта::+]] [[Долгота::+]] [[ID::+]] [[Место.Тип::{{{тип|+}}}]]
| ?Место
| ?Широта
| ?Долгота
| ?ID
| ?Текст
| ?Заголовок
| ?Дата события
| sort = Дата события
| order = desc
| format = template
| template = Новость на карте{{!}}категории={{{категории|}}}
| link = none
| named args = yes
| limit = 200
| searchlabel = Новости
}}
}}/csidiv>

<csidiv>

AjaxLoader Indicator Lite Green.gif Загружается карта…

8default

</csidiv>