Справка:Карты: различия между версиями

Материал из in.wiki
Перейти к навигации Перейти к поиску
poster>Cucuzapl
м (1 версия: WikiLeaflet)
 
м (2 версии импортировано: Automated import)
 
(не показана 1 промежуточная версия 1 участника)
Строка 1: Строка 1:
{{TOC Right}}В русской энциклопедии «Традиция» существует возможность размещения в статьях '''интерактивных географических карт'''.
+
{{Руководства}}
 +
В проекте существует возможность размещения в статьях '''интерактивных географических карт'''.
  
Картографическая информация поступает из баз данных [[OpenStreetMap]], [[Osmosnimki]] и др. и отображается на страницах «Традиции» при помощи движка [[WikiLeaflet]], в свою очередь использующего библиотеку ''[[Leaflet]]''.
+
Картографическая информация поступает из баз данных [[OpenStreetMap]], [[Osmosnimki]] и др. и отображается на страницах проекта при помощи движка [[WikiLeaflet]], в свою очередь использующего библиотеку ''[[Leaflet]]''.
  
Авторы статей вики, однако же, полностью ограждены от этих технических подробностей: для них публикация карт сводится к употреблению {{nobr|1=шаблона {{tl|wl}},}} а также, возможно, его модифицированной версии — {{tl|карта в рамке}}.
+
Авторы статей вики, однако же, полностью ограждены от этих технических подробностей: для них публикация карт сводится к употреблению {{nobr|1=шаблона {{tl|wl}},}} а также, возможно, его модифицированной версии — {{tl|карта в рамке}}.
  
Вы находитесь на справочной странице «[[Справка:Карты]]», где оформление карт объясняется подробно и на примерах. (Существенно более краткую справку по параметрам шаблонов {{tl|wl}} и {{tl|карта в рамке}} вы можете найти на страницах самих шаблонов.)
+
Вы находитесь на справочной странице «[[Справка:Карты]]», где оформление карт объясняется подробно и на примерах. (Существенно более краткую справку по параметрам шаблонов {{tl|wl}} и {{tl|карта в рамке}} вы можете найти на страницах самих шаблонов.)
  
 
== Первоначальное создание карты ==
 
== Первоначальное создание карты ==
  
Чтобы поместить карту на какой-либо странице в Традиции, достаточно вызвать {{nobr|1=шаблон {{tl|wl}}}} без параметров:
+
Чтобы поместить карту на какой-либо странице, достаточно вызвать {{nobr|1=шаблон {{tl|wl}}}} без параметров:
  
 
  <nowiki>{{wl}}</nowiki>
 
  <nowiki>{{wl}}</nowiki>
Строка 19: Строка 20:
 
=== Свойства по умолчанию ===
 
=== Свойства по умолчанию ===
  
Когда шаблон не имеет параметров, тогда многие свойства такой карты определяются значениями по умолчанию:
+
Когда шаблон не имеет параметров, тогда многие свойства такой карты определяются значениями по умолчанию:
  
* Высота карты составляет 500 пикселов.
+
* Высота карты составляет 500 пикселов.
  
* В центре карты находится [[Геленджик]] (город, в котором родился [[Mithgol the Webmaster|Mithgol the Webmaster]], создатель [[WikiLeaflet]]).
+
* В центре карты находится [[Геленджик]] (город, в котором родился [[Mithgol the Webmaster|Mithgol the Webmaster]], создатель [[WikiLeaflet]]).
  
* Уровень увеличения равен тринадцати. (Понятие «уровень увеличения» имеет отношение к масштабу карты: на нулевом уровне увеличения карта всей планеты помещается внутрь квадрата размером 256×256 пикселов, а каждый последующий уровень сопровождается двукратным ростом масштаба, то есть удвоением размера карты.)
+
* Уровень увеличения равен тринадцати. (Понятие «уровень увеличения» имеет отношение к масштабу карты: на нулевом уровне увеличения карта всей планеты помещается внутрь квадрата размером 256×256 пикселов, а каждый последующий уровень сопровождается двукратным ростом масштаба, то есть удвоением размера карты.)
  
* Используется та же раскраска карты, что и на сайте OpenStreetMap.
+
* Используется та же раскраска карты, что и на сайте OpenStreetMap.
  
По ширине карта занимает всё доступное ей пространство страницы, но не более того (то есть не накладывается на предшествующие ей иллюстрации или оглавление, когда те прижаты к правому или левому краю страницы).
+
По ширине карта занимает всё доступное ей пространство страницы, но не более того (то есть не накладывается на предшествующие ей иллюстрации или оглавление, когда те прижаты к правому или левому краю страницы).
  
 
=== Интерактивность карт ===
 
=== Интерактивность карт ===
  
Все созданные шаблоном {{tl|wl}} географические карты обладают интерактивностью, то есть читатель (или автор) энциклопедии может управлять ими:
+
Все созданные шаблоном {{tl|wl}} географические карты обладают интерактивностью, то есть читатель (или автор) энциклопедии может управлять ими:
  
* Ухватив карту мышью (то есть подведя к карте курсор мыши и нажав левую клавишу, а затем не отпуская её), можно таскать карту в произвольном направлении (север, юг, восток, запад…), открывая новые части карты, соседствующие с изображённою. Пользователи мобильных устройств (у которых нет мыши, но есть сенсорный экран) могут таскать карту пальцем.
+
* Ухватив карту мышью (то есть подведя к карте курсор мыши и нажав левую клавишу, а затем не отпуская её), можно таскать карту в произвольном направлении (север, юг, восток, запад…), открывая новые части карты, соседствующие с изображённою. Пользователи мобильных устройств (у которых нет мыши, но есть сенсорный экран) могут таскать карту пальцем.
  
* В левом верхнем углу карты нарисованы кнопки «плюс» {{nobr|и «минус»,}} позволяющие увеличивать или уменьшать уровень увеличения.
+
* В левом верхнем углу карты нарисованы кнопки «плюс» {{nobr|и «минус»,}} позволяющие увеличивать или уменьшать уровень увеличения.
  
* Дважды ткнув какую-либо точку карты (мышью или пальцем), можно увеличить уровень увеличения и одновременно поместить эту точку в центр карты — этим приёмом пользуются при необходимости рассмотреть именно это место поподробнее.
+
* Дважды ткнув какую-либо точку карты (мышью или пальцем), можно увеличить уровень увеличения и одновременно поместить эту точку в центр карты — этим приёмом пользуются при необходимости рассмотреть именно это место поподробнее.
  
 
== Управление параметрами карты (на примере высоты) ==
 
== Управление параметрами карты (на примере высоты) ==
  
Чтобы изменить установленные по умолчанию параметры карты, внутри основного (внешнего) {{nobr|1=шаблона {{tl|wl}}}} помещают дополнительные (внутренние) {{nobr|1=шаблоны {{tl|wl}},}} и желаемые параметры карты указывают в качестве параметров этих внутренних шаблонов.
+
Чтобы изменить установленные по умолчанию параметры карты, внутри основного (внешнего) {{nobr|1=шаблона {{tl|wl}}}} помещают дополнительные (внутренние) {{nobr|1=шаблоны {{tl|wl}},}} и желаемые параметры карты указывают в качестве параметров этих внутренних шаблонов.
  
Так, например, чтобы изменить высоту карты, используется внутренний {{nobr|1=шаблон {{tl|wl}},}} первым параметром которого является слово «высота», а вторым — значение высоты (число пикселей).
+
Так, например, чтобы изменить высоту карты, используется внутренний {{nobr|1=шаблон {{tl|wl}},}} первым параметром которого является слово «высота», а вторым — значение высоты (число пикселей).
  
Вот пример кода, уменьшающего высоту карты до 250 пикселов:
+
Вот пример кода, уменьшающего высоту карты до 250 пикселов:
  
 
  <nowiki>{{wl|1=</nowiki>
 
  <nowiki>{{wl|1=</nowiki>
Строка 53: Строка 54:
 
  <nowiki>}}</nowiki>
 
  <nowiki>}}</nowiki>
  
Результат применения этого кода будет таков:
+
Результат применения этого кода будет таков:
  
 
{{wl|1=
 
{{wl|1=
Строка 59: Строка 60:
 
}}
 
}}
  
Как видите, эта карта по высоте вдвое меньше, чем предыдущая.
+
Как видите, эта карта по высоте вдвое меньше, чем предыдущая.
  
Внутренний шаблон {{tl|wl}} является частью первого параметра внешнего {{nobr|1=шаблона {{tl|wl}},}} причём номер параметра («1=») указан в явном виде, чтобы дать подсказку механизму шаблонов. (Подробности об этом — в подразделе [[Справка:Механизм шаблонов#Неопределённые и пустые параметры|«Неопределённые и пустые параметры»]] справочной страницы «[[Справка:Механизм шаблонов|Механизм шаблонов]]».)
+
Внутренний шаблон {{tl|wl}} является частью первого параметра внешнего {{nobr|1=шаблона {{tl|wl}},}} причём номер параметра («1=») указан в явном виде, чтобы дать подсказку механизму шаблонов. (Подробности об этом — в подразделе [[Справка:Механизм шаблонов#Неопределённые и пустые параметры|«Неопределённые и пустые параметры»]] справочной страницы «[[Справка:Механизм шаблонов|Механизм шаблонов]]».)
  
== Указание центра карты и уровня увеличения ==
+
== Указание центра карты, уровня увеличения и границ ==
  
Чтобы указать центр карты (то есть основной отображаемый объект) и задать желаемый уровень увеличения, используется внутренний {{nobr|1=шаблон {{tl|wl}},}} первым параметром которого является слово «центр», а затем следуют значения координат (географической широты и долготы) центра карты и желаемое значение увеличения.
+
Чтобы указать центр карты (то есть основной отображаемый объект) и задать желаемый уровень увеличения, используется внутренний {{nobr|1=шаблон {{tl|wl}},}} первым параметром которого является слово «центр», а затем следуют значения координат (географической широты и долготы) центра карты и желаемое значение увеличения.
  
Вот пример кода, показывающего карту [[Московская область|Московской области]]:
+
Вот пример кода, показывающего карту [[Московская область|Московской области]]:
  
 
  <nowiki>{{wl|1=</nowiki>
 
  <nowiki>{{wl|1=</nowiki>
Строка 74: Строка 75:
 
  <nowiki>}}</nowiki>
 
  <nowiki>}}</nowiki>
  
Результат применения этого кода будет таков:
+
Результат применения этого кода будет таков:
  
 
{{wl|1=
 
{{wl|1=
Строка 81: Строка 82:
 
}}
 
}}
  
В этом примере мы также изменяем и высоту карты (для закрепления сведений, изложенных в предыдущем абзаце).
+
В этом примере мы также изменяем и высоту карты (для закрепления сведений, изложенных в предыдущем абзаце).
  
Географические координаты указываются как числа градусов широты и долготы в форме десятичной дроби (дробная часть отделяется точкою). Положительные числа соответствуют северной широте и восточной долготе, а отрицательные означают южную широту и западную долготу. Указание минут и секунд широты и долготы (то есть шестидесятеричных долей вместо десятичной дроби) не применяется.
+
Географические координаты указываются как числа градусов широты и долготы в форме десятичной дроби (дробная часть отделяется точкою). Положительные числа соответствуют северной широте и восточной долготе, а отрицательные означают южную широту и западную долготу. Указание минут и секунд широты и долготы (то есть шестидесятеричных долей вместо десятичной дроби) не применяется.
 +
 
 +
Если не указать центр, он будет подобран автоматически как центр минимального «прямоугольника», включающего все выводимые объекты. Если не указать увеличение, оно будет подобрано так, чтобы уместились все объекты и центр (когда он задан явно).
 +
 
 +
С помощью вызова <code><nowiki>{{wl|границы|юг|запад|север|восток}}</nowiki></code> можно задать область карты, вывести фокус за границы которой перетаскиваним пользователю не будет позволено. Если указать только <code><nowiki>{{wl|границы}}</nowiki></code>, они будут установлены так, чтобы вместить все объекты карты и указанный явно её центр, плюс по десять пикселов с каждой стороны.
  
 
== Режим считывания координат ==
 
== Режим считывания координат ==
  
Понятно, что довольно хлопотно было бы сперва пытаться угадать координаты и увеличение, а затем долго «на глазок» заниматься их подгонкою, раз за разом внося коррективы в параметры шаблона {{nobr|1=<code><nowiki>{{wl|центр|...}}</nowiki></code>}} и нажимая кнопку «Предварительный просмотр», чтобы разглядеть, хорошо ли выглядит карта, помеченная этим шаблоном.
+
Понятно, что довольно хлопотно было бы сперва пытаться угадать координаты и увеличение, а затем долго «на глазок» заниматься их подгонкою, раз за разом внося коррективы в параметры шаблона {{nobr|1=<code><nowiki>{{wl|центр|...}}</nowiki></code>}} и нажимая кнопку «Предварительный просмотр», чтобы разглядеть, хорошо ли выглядит карта, помеченная этим шаблоном.
  
Движок ''WikiLeaflet'' позволяет существенно ускорить дело: после нажатия кнопки «Предварительный просмотр» карта, показываемая редактору вики, обретает дополнительные возможности и функции, позволяющие непосредственно считывать с неё координаты: сама карта станет подсказывать вид шаблонов, необходимых для указания её координат и увеличения.
+
Движок ''WikiLeaflet'' позволяет существенно ускорить дело: после нажатия кнопки «Предварительный просмотр» карта, показываемая редактору вики, обретает дополнительные возможности и функции, позволяющие непосредственно считывать с неё координаты: сама карта станет подсказывать вид шаблонов, необходимых для указания её координат и увеличения.
  
На служебных и справочных страницах иногда бывает необходимо, чтобы карта осталась в этом режиме и после сохранения шаблона, а не только при предварительном просмотре. Для этой цели используется внутренний {{nobr|1=шаблон {{tl|wl}},}} первым параметром которого является слово «редактор» {{nobr|или «edit».}}
+
На служебных и справочных страницах иногда бывает необходимо, чтобы карта осталась в этом режиме и после сохранения шаблона, а не только при предварительном просмотре. Для этой цели используется внутренний {{nobr|1=шаблон {{tl|wl}},}} первым параметром которого является слово «редактор» {{nobr|или «edit».}}
  
Вот пример кода, переводящего карту [[Московская область|Московской области]] (взятую из предыдущего абзаца) в режим считывания координат:
+
Вот пример кода, переводящего карту [[Московская область|Московской области]] (взятую из предыдущего абзаца) в режим считывания координат:
  
 
  <nowiki>{{wl|1=</nowiki>
 
  <nowiki>{{wl|1=</nowiki>
Строка 101: Строка 106:
 
  <nowiki>}}</nowiki>
 
  <nowiki>}}</nowiki>
  
Результат применения этого кода будет таков:
+
Результат применения этого кода будет таков:
  
 
{{wl|1=
 
{{wl|1=
Строка 109: Строка 114:
 
}}
 
}}
  
Как вы можете убедиться на опыте, в этом режиме карта получает следующие возможности:
+
Как вы можете убедиться на опыте, в этом режиме карта получает следующие возможности:
  
* Если таскать карту или изменять уровень её увеличения, то под картою появляется код шаблона {{nobr|1=<code><nowiki>{{wl|центр|...}}</nowiki></code>,}} все параметры в котором ужé заполнены и соответствуют наблюдаемым параметрам карты. Поэтому остаётся только выделить этот код (в Файерфоксе, например, это делается тройным тычком мыши) и скопировать его в код шаблона карты, чтобы придать карте именно тот центр и именно тот уровень увеличения, которые только что были наглядно достигнуты тасканием карты, увеличением и уменьшением масштаба её.
+
* Если таскать карту или изменять уровень её увеличения, то под картою появляются коды шаблонов <code><nowiki>{{wl|центр|...}}</nowiki></code> и <code><nowiki>{{wl|границы|...}}</nowiki></code> все параметры в которых уже заполнены и соответствуют наблюдаемым параметрам карты. Поэтому остаётся только выделить этот код (в Файерфоксе, например, это делается тройным тычком мыши) и скопировать его в код шаблона карты, чтобы придать карте именно те центр, уровень увеличения и границы, которые только что были наглядно достигнуты тасканием карты, увеличением и уменьшением масштаба её.
  
* Если ткнуть точку на карте, то на карте появляется код шаблона {{nobr|1=<code><nowiki>{{wl|точка|...}}</nowiki></code>,}} заполненного координатами этой точки. (В форме {{nobr|1=<code><nowiki>{{wl|точка|...}}</nowiki></code>}} шаблон служит для создания пометок на карте — мы поговорим об этом далее.)
+
* Если ткнуть точку на карте, то на карте появляется код шаблона {{nobr|1=<code><nowiki>{{wl|точка|...}}</nowiki></code>,}} заполненного координатами этой точки. (В форме {{nobr|1=<code><nowiki>{{wl|точка|...}}</nowiki></code>}} шаблон служит для создания пометок на карте — мы поговорим об этом далее.)
  
Нетрудно видеть, что этот инструмент совершенно избавляет от необходимости догадываться о масштабе и о координатах начальной позиции карты: достаточно установить карту в желаемое положение и увеличение, а затем скопировать в код страницы шаблон, описывающий её параметры.
+
Нетрудно видеть, что этот инструмент совершенно избавляет от необходимости догадываться о масштабе и о координатах начальной позиции карты: достаточно установить карту в желаемое положение и увеличение, а затем скопировать в код страницы шаблон, описывающий её параметры.
  
Служебный шаблон {{nobr|1=<code><nowiki>{{wl|редактор}}</nowiki></code>}} не следует использовать в статьях энциклопедии, потому что итог его действия, то есть вывод кода внутренних {{nobr|1=шаблонов {{tl|wl}},}} отнюдь не будет понятен читателю энциклопедии и обременит его. И без этого внутреннего шаблона при редактировании энциклопедии достаточно нажать кнопку «Предварительный просмотр», чтобы отображаемые в предпросмотре карты перешли в режим считывания координат.
+
Служебный шаблон {{nobr|1=<code><nowiki>{{wl|редактор}}</nowiki></code>}} не следует использовать в статьях энциклопедии, потому что итог его действия, то есть вывод кода внутренних {{nobr|1=шаблонов {{tl|wl}},}} отнюдь не будет понятен читателю энциклопедии и обременит его. И без этого внутреннего шаблона при редактировании энциклопедии достаточно нажать кнопку «Предварительный просмотр», чтобы отображаемые в предпросмотре карты перешли в режим считывания координат.
  
 
== Обрамление карты рамкою, управление шириною ==
 
== Обрамление карты рамкою, управление шириною ==
  
Иногда возникает необходимость поместить карту в рамку и снабдить эту рамку подписью — наподобие того, как выглядят [[Справка:Изображения|изображения]], снабжённые параметром «frame» {{nobr|или «thumb».}}
+
Иногда возникает необходимость поместить карту в рамку и снабдить эту рамку подписью — наподобие того, как выглядят [[Справка:Изображения|изображения]], снабжённые параметром «frame» {{nobr|или «thumb».}}
  
Для этой цели основной (внешний) {{nobr|1=шаблон {{tl|wl}}}} следует заменить шаблоном {{tl|карта в рамке}} или его синонимом {{tl|mapframe}}; первым параметром этого шаблона является подпись для рамки, а совокупность дополнительных (внутренних) {{nobr|1=шаблонов {{tl|wl}}}} становится вторым его параметром.
+
Для этой цели основной (внешний) {{nobr|1=шаблон {{tl|wl}}}} следует заменить шаблоном {{tl|карта в рамке}} или его синонимом {{tl|mapframe}}; первым параметром этого шаблона является подпись для рамки, а совокупность дополнительных (внутренних) {{nobr|1=шаблонов {{tl|wl}}}} становится вторым его параметром.
  
Так, например, код карты Московской области принимает следующий вид:
+
Так, например, код карты Московской области принимает следующий вид:
  
 
  <nowiki>{{карта в рамке</nowiki>
 
  <nowiki>{{карта в рамке</nowiki>
Строка 134: Строка 139:
 
  <nowiki>}}</nowiki>
 
  <nowiki>}}</nowiki>
  
Результат применения этого кода будет таков:
+
Результат применения этого кода будет таков:
  
 
{{карта в рамке
 
{{карта в рамке
Строка 143: Строка 148:
 
}}
 
}}
  
У шаблона {{tl|карта в рамке}} есть параметр '''ширина''' (и его синоним '''width'''), позволяющий ограничить ширину карты (значением параметра является число пикселов ширины). В этом случае положение карты подобно положению иллюстрации {{nobr|с параметром «thumb»:}} карта прижимается к правому краю страницы, а последующий текст статьи обтекает карту слева.
+
У шаблона {{tl|карта в рамке}} есть параметр '''ширина''' (и его синоним '''width'''), позволяющий ограничить ширину карты (значением параметра является число пикселов ширины). В этом случае положение карты подобно положению иллюстрации {{nobr|с параметром «thumb»:}} карта прижимается к правому краю страницы, а последующий текст статьи обтекает карту слева.
  
 
{{карта в рамке
 
{{карта в рамке
Строка 152: Строка 157:
 
|ширина=300
 
|ширина=300
 
}}
 
}}
Вот пример — код карты Московской области с ограниченной шириной (и с пониженным уровнем увеличения, чтобы область поместилась на карте):
+
Вот пример — код карты Московской области с ограниченной шириной (и с пониженным уровнем увеличения, чтобы область поместилась на карте):
  
 
  <nowiki>{{карта в рамке</nowiki>
 
  <nowiki>{{карта в рамке</nowiki>
Строка 164: Строка 169:
 
Итог выполнения этого примера {{nobr|см. справа.}}
 
Итог выполнения этого примера {{nobr|см. справа.}}
  
Карту можно расположить не справа, а слева от текста, если параметру '''float''' придать значение '''left'''.
+
Карту можно расположить не справа, а слева от текста, если параметру '''float''' придать значение '''left'''.
  
Чтобы разместить карту по центру страницы, достаточно присвоить любое непустое значение параметру '''центр''' (значение параметра '''float''' при этом игнорируется).
+
Чтобы разместить карту по центру страницы, достаточно присвоить любое непустое значение параметру '''центр''' (значение параметра '''float''' при этом игнорируется).
  
 
Пример:
 
Пример:
Строка 190: Строка 195:
 
}}
 
}}
  
Центрированием особенно уместно пользоваться в тех случаях, когда {{nobr|по каким-либо}} причинам текст, оттеснённый картою к правому или к левому краю страницы, выглядел бы некорректно (или вообще не помещался бы). Текст, расположенный после центрированной карты, помещается ниже её.
+
Центрированием особенно уместно пользоваться в тех случаях, когда {{nobr|по каким-либо}} причинам текст, оттеснённый картою к правому или к левому краю страницы, выглядел бы некорректно (или вообще не помещался бы). Текст, расположенный после центрированной карты, помещается ниже её.
  
 
=== Галереи карт ===
 
=== Галереи карт ===
  
Применение шаблона {{tl|строчный блок}} вокруг рамок с ограниченной шириною позволяет создавать своего рода галереи географических карт.
+
Применение шаблона {{tl|строчный блок}} вокруг рамок с ограниченной шириною позволяет создавать своего рода галереи географических карт.
  
 
Пример:
 
Пример:
Строка 247: Строка 252:
 
{{main|Справка:Выбор тайлов}}
 
{{main|Справка:Выбор тайлов}}
  
[[OpenStreetMap]] — это открытая база картографических данных, и поэтому существует плюрализм мнений о том, как именно должно выглядеть отображение содержащихся в ней данных. Различные организации и группы частных лиц создают различные '''рéндереры''' (программы для отображения картографических данных) и создают с их помощью различные '''тáйлы''' (плитки размером 256×256 пикселов, из которых складывается географическая карта), которые предоставляют для более или менее свободного отображения всем желающим.
+
Используемые по умолчанию тайлы задаются шаблоном <code><nowiki>{{wl|тайлы|имяСервераТайлов}}</nowiki></code>. Допустимые значения второго параметра: <code>osm</code>, <code>cycle</code>, <code>mapquest</code>, <code>openaerial</code>, <code>hydda</code>, <code>openmapsurfer</code>, <code>esriwp</code>, <code>thundertr</code>. В ходе работы пользователь может выбирать тайлы с помощью переключателя в правом верхнем углу.
  
Движок WikiLeaflet позволяет указать тот сервер тайлов, который будет использоваться при отображении карты. Для этой цели используется внутренний {{nobr|1=шаблон {{tl|wl}},}} первым параметром которого является слово «тайлы», а вторым — ключевое слово, означающее желаемый сервер тайлов.
+
== Динамические карты ==
 +
=== Формирующиеся на стороне сервера ===
 +
Возможно формирование серверных автоматических карт, на основании имеющейся семантической информации о географических координатах. Для этого надо вложить в шаблон {{tl|wl}} запрос ''[[Semantic MediaWiki]]'' {{fp|ask}}, возвращающий список точек, GeoJSON или значков, оформленный с помощью параметра <code>template=wl</code> или с использованием другого шаблона, вызывающего {{tl|wl}}. Такие карты будут обновляться только с перепарсингом страницы, на которой находятся.
  
Вот каковы допустимые значения второго параметра:
+
Пример автоматической карты:
 +
<pre><nowiki>{{На карте
 +
| title=Города Московской области
 +
| tiles=osm
 +
| select=[[Категория:Города Московской области]]
 +
}}</nowiki></pre>
  
;<code>osm</code>
+
{{На карте
:Используется основной сервер тайлов OpenStreetMap (рендерер «mapnik»).
+
| title=Города Московской области
:Карты имеют совершенно тот же вид, что и на сайте OpenStreetMap по умолчанию.
+
| tiles=osm
:Уровень увеличения может меняться в пределах от 0 до 18.
+
| select=[[Категория:Города Московской области]]
 +
}}
  
;<code>local</code>
+
=== Формирующиеся на стороне клиента ===
:Тайлы берутся из папки {{nobr|1=«<code>/tiles/</code>»}} на сервере вики. (Предполагается, что они скопированы туда заблаговременно {{nobr|с какого-нибудь}} сервера тайлов OpenStreetMap.)
+
Для часто обновляемых геоинформационных данных рекомендуется использовать карты, подкачивающие данные с сервера с помощью [[API MediaWiki|API ''MediaWiki'']]. Для этого достаточно завернуть код карты целиком в тег {{tag|csidiv}}:
:Этот параметр предусмотрен для употребления или тестирования карт в [[интранет]]е, закрытом от Интернета. В Традиции он не употребляется.
 
  
;<code>cycle</code>
+
Пример:
:Используется сервер тайлов [[OpenCycleMap]] (карта для велосипедистов).
+
<pre><nowiki><csidiv>{{wl|1=
:Уровень увеличения может меняться в пределах от 0 до 16.
+
{{wl|фильтры}}
 +
{{wl|кластер|8||default}}
 +
{{#ask:[[Новость:+]] [[Текст::+]] [[Широта::+]] [[Долгота::+]] [[ID::+]] [[Место.Тип::{{{тип|+}}}]]
 +
| ?Место
 +
| ?Широта
 +
| ?Долгота
 +
| ?ID
 +
| ?Текст
 +
| ?Заголовок
 +
| ?Дата события
 +
| sort = Дата события
 +
| order = desc
 +
| format = template
 +
| template = Новость на карте{{!}}категории={{{категории|}}}
 +
| link = none
 +
| named args = yes
 +
| limit = 200
 +
| searchlabel = Новости
 +
}}
 +
}}/csidiv></nowiki></pre>
  
;<code>mapquest</code>
+
<csidiv>{{wl|1=
:Используется сервер тайлов компании [[MapQuest]]. Он содержит данные OpenStreetMap, которые для небольших уровней увеличения дополняются элементами физической карты мира).
+
{{wl|фильтры}}
:Уровень увеличения может меняться в пределах от 0 до 18.
+
{{wl|кластер|8||default}}
 
+
{{#ask:[[Новость:+]] [[Текст::+]] [[Широта::+]] [[Долгота::+]] [[ID::+]] [[Место.Тип::{{{тип|+}}}]]
;<code>openaerial</code>
+
| ?Место
:Используется сервер тайлов MapQuest Open Aerial (данные спутниковой съёмки и аэрофотосъёмки).
+
| ?Широта
:Это не картографическая, а фотографическая информация о Земле.
+
| ?Долгота
:Уровень увеличения может меняться в пределах от 0 до 11.
+
| ?ID
 
+
| ?Текст
;<code>osmosnimki</code>
+
| ?Заголовок
:Используется сервер тайлов компании [[Scanex]] (Kosmosnimki.Ru: данные OpenStreetMap с изменёнными стилями и рендерингом).
+
| ?Дата события
:Уровень увеличения может меняться в пределах от 0 до 17.
+
| sort = Дата события
 
+
| order = desc
;<code>kosmosnimki</code>
+
| format = template
:Используется сервер тайлов компании Scanex (Kosmosnimki.Ru: данные спутниковой съёмки — базовое покрытие Kosmosnimki.Ru).
+
| template = Новость на карте{{!}}категории={{{категории|}}}
:Это не картографическая, а фотографическая информация о Земле.
+
| link = none
:Уровень увеличения может меняться в пределах от 0 до 18.
+
| named args = yes
 
+
| limit = 200
;<code>openmapsurfer</code>
+
| searchlabel = Новости
:Используется сервер тайлов [http://openmapsurfer.uni-hd.de/contact.html OpenMapSurfer] (данные OpenStreetMap, подготовленные [http://www.geog.uni-heidelberg.de/giscience.html географическим факультетом] Гейдельбергского университета в Германии).
+
}}
:Уровень увеличения может меняться в пределах от 0 до 18.
+
}}</csidiv>
 
 
Подробнее о характеристиках некоторых тайловых серверов рассказывает [[:osm:Slippy_map_tilenames#Tile_servers|статья в вики OpenStreetMap.]]{{ref-en}}
 
 
 
Показать различия тайлов можно на нескольких примерах. Так как эти примеры по своей природе изобилуют иллюстрациями, то они были вынесены на отдельную страницу — «'''[[Справка:Выбор тайлов]]'''».
 

Текущая версия от 05:14, 22 марта 2024

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

Картографическая информация поступает из баз данных 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}}
}}

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

Шаблон:Карта в рамке

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

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

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

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

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

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

Пример:

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

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

Шаблон:Карта в рамке

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

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

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

Пример:

{{строчный блок|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
}}}}

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

Шаблон:Строчный блок Шаблон:Строчный блок Шаблон:Строчный блок

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

Основная статья: Справка:Выбор тайлов

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

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

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

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

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

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

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

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

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

Пример:

<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   Загружается карта…
 
AjaxLoader Indicator Lite Green.gif   Загружается карта…
 
кластер

</csidiv>