Шаблон:ПозКарта

Материал из «Знание.Вики»
Документация

{{ПозКарта}} — шаблон для вставки карт, наглядно показывающих положение объекта (или нескольких объектов) в каком-либо регионе.

См. полный список доступных стран и регионов.

Использование

Одна точка

Обычная карта
Паг, Хорватия
Паг (Хорватия)
Точка
Паг
Паг, Хорватия
{{ПозКарта|Хорватия
 |label   = Паг
 |lat_deg = 44 |lat_min = 26
 |lon_deg = 15 |lon_min = 3
 |width   = 300
 |float   = right
}}
Задание координат в десятичном виде и смена положения метки
Астана, Казахстан
залив Кара-Богаз-ГолАральское мореАральское мореАральское мореТуркменияУзбекистанАзербайджанГрузияКиргизияТаджикистанКитайРоссияБайконурАлма-АтаНур-Султанозеро Балхашозеро Зайсанозеро АлакольМангистауская областьАтырауская областьЗападно-Казахстанская областьАктюбинская областьКостанайская областьСеверо-Казахстанская областьАкмолинская областьПавлодарская областьКарагандинская областьКызылординская областьТуркестанская областьЖамбылская областьВосточно-Казахстанская областьАлматинская областьКаспийское мореАстана (Казахстан)
Описание изображения
Точка
Астана
Астана, Казахстан
{{ПозКарта|Казахстан
 |label    = Астана
 |lat      = 51.1833
 |lon      = 71.4000
 |position = left
 |width    = 300
}}
Настройка надписи, подписи и маркера
Харьков, Украина
Харьков (Украина)
Точка
Харьков
Харьков, второй по величине город Украины
{{ПозКарта|Украина
 |label      = ''Харьков''
 |lat        = 50
 |lon        = 36.25
 |position   = top
 |width      = 300
 |float      = right
 |background = #AFD6FF
 |label_size = 222
 |marksize   = 17
 |caption    = Харьков, второй по величине город Украины
 }}
Различные варианты маркеров можно найти в категории Map pointers на Викискладе.
Карта без подписи
Брчко, Босния и Герцеговина
Брчко (Босния и Герцеговина)
Точка
Брчко
{{ПозКарта|Босния и Герцеговина
 |label    = Брчко
 |position = left
 |width    = 300
 |lat      = 44.87
 |lon      = 18.81
 |float    = right
 |caption  = 
 }}
Пересечение 180°-меридиана
Сува, Фиджи
Сува (Фиджи)
Точка
Сува
Сува, Фиджи
{{ПозКарта|Фиджи
 |label    = Сува
  |lat_dir = S |lat_deg =  18 |lat_min =  8 |lat_sec = 0
  |lon_dir = E |lon_deg = 178 |lon_min = 26 |lon_sec = 0
 |position = left
 |width    = 300
 |float    = right
}}

Активные области

Чикаго (США)
Точка
Чикаго
Чикаго, США
{{ПозКарта|Соединённые Штаты Америки
 |label   = Чикаго
 |lat_deg = 44 |lat_min = 26
 |lon_deg = 15 |lon_min = 3
 |width   = 300
 |float   = right
 |areas   = rect 0 0 300 1000 [[Тихий океан]]
}}

Несколько точек

Для нескольких точек используется связка из шаблонов {{ПозКарта}} и {{ПозКарта~}}. Действие параметров точно такое же, как и при использовании одной точки.


ПозКарта (Россия)
Красная точка
Санкт-Петербург
Красная точка
Москва
Красная точка
Самара
Красная точка
Новосибирск
Красная точка
Томск
Красная точка
Махачкала
Красная точка
Красноярск
Красная точка
Нерюнгри
Красная точка
Владивосток
Красная точка
Хабаровск
Красная точка
Анадырь
Некоторые города России
{{ПозКарта|Россия|width=666|float=center|caption=Некоторые города России|places=
  {{ПозКарта~|Россия|lat_deg=59|lat_min=57|lon_deg= 30|lon_min=19|label=Санкт-Петербург|background=#FCF5E3}}
  {{ПозКарта~|Россия|lat_deg=55|lat_min=45|lon_deg= 37|lon_min=37|label=Москва}}
  {{ПозКарта~|Россия|lat_deg=53|lat_min=11|lon_deg= 50|lon_min=07|label=Самара}}
  {{ПозКарта~|Россия|lat_deg=55|lat_min=02|lon_deg= 82|lon_min=55|label=Новосибирск|position=bottom|background=#FCF5E3}}
  {{ПозКарта~|Россия|lat_deg=56|lat_min=30|lon_deg= 84|lon_min=58|label=Томск|position=top}}
  {{ПозКарта~|Россия|lat_deg=42|lat_min=59|lon_deg= 47|lon_min=29|label=Махачкала|background=#FCF5E3}}
  {{ПозКарта~|Россия|lat_deg=56|lat_min=00|lon_deg= 92|lon_min=56|label=Красноярск|position=right}}
  {{ПозКарта~|Россия|lat_deg=56|lat_min=40|lon_deg=124|lon_min=42|label=Нерюнгри}}
  {{ПозКарта~|Россия|lat_deg=43|lat_min=07|lon_deg=131|lon_min=54|label=Владивосток}}
  {{ПозКарта~|Россия|lat_deg=48|lat_min=29|lon_deg=135|lon_min=04|label=Хабаровск|background=#FCF5E3}}
  {{ПозКарта~|Россия|lat_deg=64|lat_min=44|lon_deg=177|lon_min=31|label=Анадырь|background=#FCF5E3}}
}}

Рамка

КитайМонголияКазахстанТываХакасияКемеровская областьАлтайский крайКош-Агачский районГорно-АлтайскМайминский районОнгудайский районТурочакский районУлаганский районУсть-Канский районУсть-Коксинский районЧемальский районЧойский районШебалинский районПозКарта (Республика Алтай)
Описание изображения
{{ПозКарта
 |Россия Республика Алтай
 |caption=
 |label=
 |lat_deg=51.577923
 |lon_deg=87.668152
 |width=300
 |float=right
 |alt=physical
 |areas=physical
 |rama=1
 |ramacolor=#ff0000
 |ramawidth=44
 |ramaheight=44
 |radius=22
}}


КитайМонголияКазахстанТываХакасияКемеровская областьАлтайский крайКош-Агачский районГорно-АлтайскМайминский районОнгудайский районТурочакский районУлаганский районУсть-Канский районУсть-Коксинский районЧемальский районЧойский районШебалинский районПозКарта (Республика Алтай)
Описание изображения
{{ПозКарта
 |Россия Республика Алтай
 |caption=
 |label=
 |lat_deg=51.577923
 |lon_deg=87.668152
 |width=300
 |float=right
 |alt=physical
 |areas=physical
 |rama=1
 |ramacolor=#ff0000
 |ramawidth=22
 |ramaheight=44
 |rotate=-10
}}

Альтернативная карта

Если использующаяся по умолчанию карта не устраивает, можно воспользоваться альтернативной картой.

Внимание: проекция и параметры обрезки альтернативной карты должны обязательно совпадать с параметрами карты по умолчанию.

Карта по умолчанию Физическая карта Альтернативная карта
|alt = |alt = physical |alt = Location of Bezhanitsky District (Pskov Oblast).svg
ПсковГдовский районПлюсский районСтруго-Красненский районПсковский районПечорский районПсковское озероЧудское озероЛатвияЭстонияБелоруссияЛенинградская областьозеро ИльменьСмоленская областьПалкинский районПыталовский районКрасногородский районСебежский районНевельский районУсвятский районЖижицкое озероДвинь-Велинское озероКуньинский районВеликие ЛукиВеликолукский районЛокнянский районозеро ПолистоБежаницкий районДедовичский районДновский районПорховский районОстровский районПушкиногорский районНоворжевский районПустошкинский районНовосокольнический районОпочецкий районТверская областьНовгородская областьозеро Полисто (Псковская область)
Описание изображения
Точка
озеро Полисто
озеро Полисто (Псковская область)
Точка
озеро Полисто
озеро Полисто (Псковская область)
Точка
озеро Полисто

Пока используются параметры для альтернативных карт:

Полный список параметров

Обозначения:  параметр только шаблона {{ПозКарта}};  параметр шаблонов {{ПозКарта}} и {{ПозКарта~}}

  •  1 — название карты (можно указывать без номера, см. примеры);
  •  float — размещение карты:
    • left, rightпо умолчанию — обтекание по левому или правому краю;
    • center — выравнивание по центру;
    • none — без обтекания;
  •  caption — подпись:
    • Если задана, изображение попадает в толстую серую рамку, как вставленная картинка;
    • Если не задана, серой рамки нет, а под картой появляется подпись имя страницы, имя карты;
    • Если задана пустой — и рамка, и какая-либо подпись отсутствуют;
  •  label — надпись рядом с точкой. При использовании с несколькими точками {{ПозКарта}} использует его только для автоматической подписи;
  •  width — ширина карты в пикселях (по умолчанию 240);
  •  alt — альтернативная карта — название класса карт (например, «physical»), либо имя файла, которым будет заменена карта. Формулы расчёта координат не меняются, поэтому изображения при наложении должны соответствовать;
  •  border — цвет границы.
  •  areas — активные области на изображении. Реализуются с помощью расширения ImageMap и используют его синтаксис. Координаты вычисляются относительно полного размера изображения.
  •  places — список точек, составленный шаблонами {{ПозКарта~}}.
  •  lat (lat_dir, lat_deg, lat_min, lat_sec) — широта, может быть задана как в десятичных координатах (для южного полушария — отрицательная), так и в градусах, минутах и секундах (lat_dir — N для северного полушария, S для южного);
  •  lon (lon_dir, lon_deg, lon_min, lon_sec) — долгота, также допускает два формата. Десятичное значение отрицательно для западного полушария; lon_dir — W для западного полушария, E для восточного;
  •  label — надпись рядом с точкой;
  •  position — положение надписи относительно точки:
    • left, right — слева или справа;
    • top, bottom — сверху (может некорректно работать на больших шрифтах) или снизу;
    • autoпо умолчанию — автовыбор между right (для точек в левой половине карты) и left (в правой);
    • none — скрыть надпись;
  •  label_size — размер текста надписи в процентах от нормального;
  •  background — цвет фона надписи, рекомендуется использовать только при необходимости и делать равным цвету фона карты;
  •  mark — имя файла с точкой, по умолчанию Red pog.svg;
  •  markalt — текст, который будет использован в качестве alt-текста для картинки с точкой;
    Примечание: в шаблоне {{ПозКарта~}} данный параметр называется alt. Не следует путать его с одноимённым параметром шаблона {{ПозКарта}}.
  •  marksize — размер точки (9 — по умолчанию, 1 — точка отсутствует).
  •  rama — выводить рамку вместо точки. Число задает толщину рамки (в пикселях, пример: |rama=1).
  •  ramawidth — ширина рамки (в пикселях, пример: |ramawidth=20).
  •  ramaheight — высота рамки (в пикселях, пример: |ramaheight=10).
  •  ramacolor — цвет рамки (по умолчанию красный, пример: |ramacolor=green).
  •  rotate — угол поворота рамки в градусах (по умолчанию равен 0, пример: |rotate=85).
  •  radius — использовать если нужна рамка в виде окружности, задаётся в пикселях как длина радиуса окружности (для того чтобы получился именно круг, значения параметров ramawidth и ramaheight должны быть одинаковы, при этом радиус должен иметь значение равное половине ramawidth или ramaheight) (пример:|ramawidth=44|ramaheight=44|radius=22)

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

Если вы хотите, чтобы подписи на карте были ссылками, для которых устанавливалось особое оформление (например, жирный шрифт и чёрный цвет), используйте дополнительные параметры шаблона {{ПозКарта~}}:

  1. Установите для нужных меток параметр |label_link=x. Тогда в качестве текста метки и ссылки вместо параметра |label= будет использовано содержимое параметра |link=. Заполните его.
  2. Для тех ссылок, где их отображаемый текст должен отличаться от заданного в параметре |link=, укажите этот отображаемый текст в параметре |label_link_text=.
  3. При необходимости заполните также параметры |label_style= с CSS-настройками метки (например, font-weight: bold;), |label_blue_link_color= с цветом рабочей ссылки на статью и |label_red_link_color= с цветом нерабочей.

Результат может выглядеть так.

Как создавать карты

Если в списке не нашлось нужной карты или качество уже существующей карты не устраивает, её можно создать самостоятельно.

Изображение

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

Рекомендации по раскрашиванию карт

Шаблон

Именование

Помните, что если на карте изображена внутренняя территориальная единица (например, провинция), то в поле создания шаблона необходимо набрать полную иерархию адресов, начиная с самого верхнего уровня (например, Шаблон:ПозКарта Германия Тюрингия). Названные таким образом позиционные карты будут автоматически подставляться в шаблон {{НП}}. В остальных случаях нужно лишь называть единицу — {{ПозКарта Антарктида}}.

Цилиндрическая равнопромежуточная проекция

Хорватия

Самый удобный для позиционных карт тип проекции. Преимущество данной проекции — простота формулы расчёта положения объекта (так как осями в карте являются широта и долгота в чистом виде). Недостаток — искажение карты (чем дальше от экватора, тем больше искажения), как следствие по такой карте, без дополнительных расчётов нельзя точно оценить расстояние между объектами. Чтобы уменьшить искажения, карта специально растягивается по оси север-юг, например для карты Хорватии коэффициент растяжение равен 140 %.

Для создания шаблона будут нужны только параметры обрезки карты: долгота крайнего левого и крайнего правого меридиана, широта крайней верхней и крайней нижней параллели на изображении. Получившиеся значения в десятичном виде будут значениями параметров left и right, top и bottom соответственно. Значения для южного и западного полушарий указываются с минусом.

Для Хорватии:

|name    = Хорватия
| top    = 46.8
| bottom = 42.1
| left   = 13.1
| right  = 19.9
| image  = Croatia location map.svg

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

| imagephysical = Example map 2.jpg
| image123 = Example map 30.svg

Тогда при вызове шаблона с параметром alt=physical подставится Example map 2.jpg, а alt=123 подставит Example map 30.svg.

Если карта пересекает 180°-меридиан, точки западного полушария будут корректно отображаться с параметром crosses180=1.

Прямая азимутальная (полярная) проекция

Антарктида

Чтобы всё заработало, нужно указать тип проекции параметром type=polar.

Потребуется узнать координаты полюса, а также длину половины меридиана (от полюса до экватора) на данном изображении. Это параметры x и y, length_x и length_y соответственно (записываются в процентах от ширины/высоты карты). Пригодится угол в градусах между нулевым меридианом и прямой, направленной вправо из северного полюса (влево из южного).

Два полушария одновременно задействовать нельзя.

Для Антарктиды:

|type = polar
|x = 50
|y = 50
|alpha = -90
|mult = 1
|length_x = -150
|length_y = -150
|image = Antarctica blank.svg

Нестандартная проекция

Карта Китая в конической равнопромежуточной проекции

Чтобы всё заработало, нужно указать тип проекции параметром type=custom.

Для расчёта координат используются произвольные формулы, которые надо вставить в подстраницы /x и /y (ПозКарта .../x). Подстраницы вызываются с двумя параметрами: {{{1}}} — долгота (−180…180), {{{2}}} — широта (−90…90). Результатом вычислений должно стать значение координаты точки в процентах (для /x — от ширины изображения, для /y — от высоты, отсчитывая от верхнего левого угла карты). На подстраницах не должно быть ничего, кроме формулы.

В качестве примера можно посмотреть Шаблон:ПозКарта Китайская Народная Республика.

 |name = Китайская Народная Республика
 |image = China edcp location map.svg
 |type = custom

Карта прорисована в конической равнопромежуточной проекции. Для составления формулы расчёта положения маркера нам понадобятся следующие данные: первая и вторая стандартные параллели, средние параллель и меридиан, средний радиус Земли в процентах от ширины (или высоты) карты, соотношение ширины и высоты карты, смещение геометрического центра карты относительно точки пересечения средних меридиана и параллели.

Формулы расчёта координат объекта:

Ось X
{{#expr: 50.0 +  116.80932603407057 * ((1.9996655301850468-({{{2}}}*3.14159265358979 / 180)) * sin(0.5867115434267053 * ({{{1}}} - 104) * 3.14159265358979 / 180)) }}
Ось Y
{{#expr: 50.0 + 1.256383 * 116.80932603407057 * 0.02641006622571962 - 1.256383 * 116.80932603407057 * (1.3713469994670882 - (1.9996655301850468-({{{2}}}*3.14159265358979 / 180)) * cos(0.5867115434267053 * ({{{1}}} - 104) * 3.14159265358979 / 180)) }}

Полный список функций, доступных в формулах расчёта координат, можно найти в meta:Help:Calculation. Тригонометрические функции принимают аргументы в радианах, для преобразования в радианы из градусов обычно используется конструкция {{{1}}}*pi/180.