Шаблон:GeoTemplate/doc

от Уикипедия, свободната енциклопедия

Шаблонът GeoTemplate не е предназначен за включване в статии или други шаблони. Той се използва от външния скрипт GeoHack, който го попълва с данни за географските координати и от своя страна е извикван от някои от шаблони за географски координати.

Тъй като не се използва от МедияУики, някои от обичайните функционалности на шаблоните не работят в него. Това е и една от причините тази документация да не е включена в шаблона (другата е, че той е достатъчно дълъг и без нея). Начинът на заместване на променливите от GeoHack не позволява те да бъдат използвани като аргументи или части от имената на други шаблони.

Параметри[редактиране на кода]

GeoHack (скриптът, който попълва GeoTemplate с работещи хипервръзки) поема входни данни от два източника:

  • Параметри зададени в извикващия URL: Координатите се дават във формата D_M_S_N_D_M_S_E, D_M_N_D_M_E, D_N_D_E или D;D, където D е градуси, M е минути, S е секунди, а NS/EW са означенията на посоките север/юг/изток/запад. Координатите могат да бъдат последвани от координатни параметри като type (тип), scale (мащаб) и region (регион), разделени със символа за подчертаване (_). В Уикипедия URL-ът се поражда от шаблони за географски координати.
    Например, уики-кодът {{coor dms|51|28|40|N|0|0|6|W|type:landmark_scale:2000_region:GB}} генерира URL, съдържащ params=51_28_40_N_0_0_6_W_type:landmark_scale:2000_region:GB.
  • Страница-шаблон (съдържанието на GeoTemplate) в която променливи се заместват със стойности, изчислени въз основа на данните, предадени чрез URL-а. Остатъкът от тази страница документира наличните променливи.

Позиция[редактиране на кода]

GeoHack предоставя следните променливи въз основа на подадените координати (51_28_40_N_0_0_6_W в следващия пример).

  • {ch1903easting}, {ch1903northing}Координати по CH1903+
  • {latdegabs}, {londegabs} – Градуси по WGS84 (абсолютна стойност, цяло число)
  • {latdegdec}, {londegdec}, {londegneg} – Градуси по WGS84 (десетична дроб със знак)
  • {latdegint}, {londegint} – Градуси по WGS84 (най-близката по-малка цяла стойност)
  • {latdeground}, {londeground} – Градуси по WGS84 (закръглена цяла стойност)
  • {latmindec}, {lonmindec} – Минути по WGS84 (десетична дроб)
  • {latminint}, {lonminint} – Минути по WGS84 (цяло число)
  • {latNS}, {lonEW} – Посока на абсолютните целочислени градуси по WGS84
  • {latsecdec}, {lonsecdec} – Секунди по WGS84 (десетична дроб)
  • {latsecint}, {lonsecint} – Секунди по WGS84 (цяло число)
  • {nztmeasting}, {nztmnorthing} – New Zealand Transverse Mercator coordinate
  • {osgb36ref}Ordnance Survey Grid reference
  • {utmnorthing} {utmeasting} {utmzone} – координати по UTM
  • {osgb36northing}, {osgb36easting}
  • {utm33northing}, {utm33easting} -

Мащабиране[редактиране на кода]

GeoHack приема параметър scale („мащаб“, scale:2000 в горния пример), който използва за да предостави мащаб или приближение на различните услуги за показване на карти.

име използва се от формула
{scale} Virtual Globe подава се в URL-а чрез scale или се изчислява на основата на type
{mmscale} Multimap най-близката стойност на мащаба, приемана от Multimap (виж mapsources.php)
{span} Google Maps, WikiMapia scale / 1000000
{altitude} MSN Maps, Fourmilab, Swissinfo integer( scale * 143 / 1000000)
{zoom} MapQuest, Gule Sider integer(18.0 – log(scale))
{osmzoom} OpenStreetMap, Live Search Maps 18 – ( round(log( scale ,2) – log(1693,2)) )

GeoHack приема параметър type („тип“; type:landmark в горния пример), от който изчислява стойност на scale (мащаба), ако такава не е подадена. Следващата таблица показва типовете, които в момента се приемат от GeoHack, свързания с всеки тип мащаб и допълнителните променливи, изчислявани от GeoHack въз основа на типа.

{type} отношение {scale} {mmscale} {span} {altitude} {zoom} {osmzoom}
country 1 : 10 000 000 10000000 10000000 10.0 1430 1 5
state 1 : 3 000 000 3000000 4000000 3.0 429 3 7
adm1st 1 : 1 000 000 1000000 1000000 1.0 143 4 9
adm2nd
(по подразбиране)
1 : 300 000 300000 200000 0.3 42 5 11
city, mountain, isle,
river, waterbody
1 : 100 000 100000 100000 0.1 14 6 12
forest, glacier 1 : 50 000 50000 50000 0.05 7 7 13
airport 1 : 30 000 30000 25000 0.03 4 7 14
edu, pass, landmark 1 : 10 000 10000 10000 0.01 1 8 15

Стойностите по подразбиране за всеки тип (type) могат да бъдат overridden като бъде добавен и параметър scale. Например, type:airport задава на {scale} стойността по подразбиране – 30000, докато type:airport_scale:10000 задава стойност 10000 на {scale}.

За подробности върху имплементацията вижте mapsources.php

Други[редактиране на кода]

  • {region}, {globe}, {page}
  • {pagename} – Стойността на ключа pagename („име на страницата“) в заявката (например &pagename=Статия) – очаква се да е стойността на FULLPAGENAMEE за съответната статия.
  • {title} – Стойността на ключа title („заглавие“) в заявката (например &title=Име). Ако не е подадена в заявката се използва същата стойност като {pagename}.

Код на разделите за региони[редактиране на кода]

Когато параметрите съдържат изрично указан регион или GeoHack успее да определи региона по координатите, подходящият раздел се премества на мястото указано по този начин:

<div id="GEOTEMPLATE-LOCAL" />

Разделите за региони са оградени с HTML-таг, където XX в стойността на атрибута id е кода по ISO 3166-1 alpha-2:

<div id="GEOTEMPLATE-XX">
...
</div>