Шаблон:GeoTemplate/doc
Това е подстраница с документация за Шаблон:GeoTemplate (вижте там за самия шаблон). Тя съдържа упътване за употреба, категории и друго помощно съдържание, което не е част от самата шаблон страница. |
Шаблонът 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>