Esempi

[modifica]

Funzione nospace

[modifica]
Esempio Input Risultato
{{#invoke:GeoData|nospace|}}
{{#invoke:GeoData|nospace|5° N}} 5° N 5°N
{{#invoke:GeoData|nospace|5° 10' N}} 5° 10' N 5°10'N
{{#invoke:GeoData|nospace|5° 01' 20" N}} 5° 01' 20" N 5°01'20"N
{{#invoke:GeoData|nospace|{{#dd2dms: 14.58|precision=0}}}} 15° 15°
{{#invoke:GeoData|nospace|{{#dd2dms: 14.58|precision=2}}}} 14° 35' 14°35'
{{#invoke:GeoData|nospace|{{#dd2dms: 14.58|precision=4}}}} 14° 34' 48" 14°34'48"
{{#invoke:GeoData|nospace|{{#dd2dms: 14.58}}}} 14° 34' 48" 14°34'48"
{{#invoke:GeoData|nospace|{{#dd2dms: 14.58N}}}} 14° 34' 48" N 14°34'48"N
{{#invoke:GeoData|nospace|{{#dd2dms: 14.58X}}}} Input non corretto Inputnoncorretto
{{#invoke:GeoData|nospace|{{#dd2dms:}}}} Input non corretto Inputnoncorretto

Funzione nozeros

[modifica]
Esempio Input Risultato
{{#invoke:GeoData|nozeros|}} no lat, no long
{{#invoke:GeoData|nozeros|5° N}} 5° N, no long
{{#invoke:GeoData|nozeros||10° E}} no lat, 10° E
{{#invoke:GeoData|nozeros|5° 10' 00" N|10° 20' 40" E}} 5° 10' 00" N, 10° 20' 40" E 5° 10' 00" N 10° 20' 40" E
{{#invoke:GeoData|nozeros|5° 01' 20" N|10° 20' 00" E}} 5° 01' 20" N, 10° 20' 00" E 5° 01' 20" N 10° 20' 00" E
{{#invoke:GeoData|nozeros|5° 00' 20" N|10° 00' 00" E}} 5° 00' 20" N, 10° 00' 00" E 5° 00' 20" N 10° 00' 00" E
{{#invoke:GeoData|nozeros|5° 10' 00" N|10° 20' 00" E}} 5° 10' 00" N, 10° 20' 00" E 5° 10' N 10° 20' E
{{#invoke:GeoData|nozeros|5° 00' 00" N|10° 00' 00" E}} 5° 00' 00" N, 10° 00' 00" E 5° N 10° E
{{#invoke:GeoData|nozeros|5° 0' 0" N|10° 0' 0" E}} 5° 0' 0" N, 10° 0' 0" E 5° N 10° E
{{#invoke:GeoData|nozeros|{{#dd2dms: {{Dms2dec|5.005555N|4}} N|precision=4}}|{{#dd2dms: {{Dms2dec|10.333333E|4}}|precision=4}} E}} 5° 0' 20" N, 10° 20' 0" E 5° 0' 20" N 10° 20' 0" E
{{#invoke:GeoData|nozeros|{{#dd2dms: {{Dms2dec|5.033333N|4}}|precision=4}} N|{{#dd2dms: {{Dms2dec|10.333333E|4}}|precision=4}} E}} 5° 2' 0" N, 10° 20' 0" E 5° 2' N 10° 20' E
{{#invoke:GeoData|nozeros|{{#dd2dms: 15N|precision=4}}|{{#dd2dms: 16E|precision=4}}}} 15° 0' 0" N, 16° 0' 0" E 15° N 16° E

Funzione dd2dms

[modifica]
Esempio Input Risultato
{{#invoke:GeoData|dd2dms||10° E}} no lat, 10° E
{{#invoke:GeoData|dd2dms|xyz|10° E}} xyz, 10° E xyz 10°E
{{#invoke:GeoData|dd2dms|{{#dd2dms: {{Dms2dec|5.000555N|4}} N|precision=4}}|{{#dd2dms: {{Dms2dec|10.333333E|4}}|precision=4}} E}} 5° 0' 2" N, 10° 20' 0" E 5°00'02"N 10°20'00"E
{{#invoke:GeoData|dd2dms|{{#dd2dms: {{Dms2dec|5.033333N|4}}|precision=4|plus=N|minus=S}}|{{#dd2dms: {{Dms2dec|10.333333E|4}}|precision=4|plus=E|minus=W}}}} 5° 2' 0" N, 10° 20' 0" E 5°02'N 10°20'E
{{#invoke:GeoData|dd2dms|{{#dd2dms: 15N|precision=4}}|{{#dd2dms: 16E|precision=4}}}} 15° 0' 0" N, 16° 0' 0" E 15°N 16°E

Per forzare il controllo sulla correttezza delle coordinare e ritornare una stringa vuota se errate, utilizzare la seguente sintassi:

{{#ifeq:{{#dd2dms:LAT}}|Input non corretto||{{#ifeq:{{#dd2dms:LONG}}|Input non corretto||{{#invoke:GeoData|dd2dms|LAT|LONG}}}}}}

local i = {}   local function __nospace(s) 	local newstr = ''; 	newstr = mw.ustring.gsub(s or '', '%s', ''); --rimuovo gli spazi 	return newstr; end  function i.nospace(frame) 	return __nospace(frame.args[1]); --rimuovo gli spazi end   local function __nozeros(lat, long) 	local lat = lat or ''; 	local long = long or '';  	--se uno dei due parametri è vuoto restituisco una stringa vuota per evidenziarne l'errore 	if lat=='' or long=='' then 		return ""; 	end  	--normalizzo eventuali simboli non standard 	for _,search in ipairs({"'", "‘", "’", "′", "&apos;"}) do 		lat = string.gsub(lat, search, "'"); 		long = string.gsub(long, search, "'"); 	end 	for _,search in ipairs({'"', "''", "“", "”", "&quot;"}) do 		lat = string.gsub(lat, search, '"'); 		long = string.gsub(long, search, '"'); 	end  	--se hanno entrambi i secondi a 0 li sopprimo 	if string.find(lat, "'%s?0?0\"") and string.find(long, "'%s?0?0\"") then 		lat = string.gsub(lat, "'%s?0?0\"", "'"); 		long = string.gsub(long, "'%s?0?0\"", "'"); 	else 		return lat.." "..long; 	end  	--se hanno entrambi i minuti a 0 li sopprimo 	if string.find(lat, "°%s?0?0'") and string.find(long, "°%s?0?0'") then 		lat = string.gsub(lat, "°%s?0?0'", "°"); 		long = string.gsub(long, "°%s?0?0'", "°"); 	end  	return lat.." "..long; end  function i.nozeros(frame) 	return __nozeros(frame.args[1], frame.args[2])  end   local function __dd2dms(p1,p2) 	local coordinate=__nozeros(__nospace(p1), __nospace(p2)); 	--se minuti e/o secondi hanno una sola cifra gli antepongo uno zero 	coordinate=string.gsub(coordinate, "(° ?)(.')","%10%2"); 	coordinate=string.gsub(coordinate, "(' ?)(.\")","%10%2"); 	return coordinate; end  function i.dd2dms(frame) 	return __dd2dms(frame.args[1], frame.args[2]); end   function i.dd2dmsspan(frame) 	local coordinate = __dd2dms(frame.args[1], frame.args[2]); 	local lat, long = coordinate:match("(.+) (.+)"); 	return '<span class="latitude">' .. lat .. '</span> ' .. '<span class="longitude">' .. long .. '</span>'; end  return i;