<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
		<id>https://wiki.czarnobyl.pl/index.php?action=history&amp;feed=atom&amp;title=Modu%C5%82%3AMapa</id>
		<title>Moduł:Mapa - Historia wersji</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.czarnobyl.pl/index.php?action=history&amp;feed=atom&amp;title=Modu%C5%82%3AMapa"/>
		<link rel="alternate" type="text/html" href="https://wiki.czarnobyl.pl/index.php?title=Modu%C5%82:Mapa&amp;action=history"/>
		<updated>2026-06-17T14:36:17Z</updated>
		<subtitle>Historia wersji tej strony wiki</subtitle>
		<generator>MediaWiki 1.28.3</generator>

	<entry>
		<id>https://wiki.czarnobyl.pl/index.php?title=Modu%C5%82:Mapa&amp;diff=5588&amp;oldid=prev</id>
		<title>Bagration: 1 wersja</title>
		<link rel="alternate" type="text/html" href="https://wiki.czarnobyl.pl/index.php?title=Modu%C5%82:Mapa&amp;diff=5588&amp;oldid=prev"/>
				<updated>2019-09-19T20:36:43Z</updated>
		
		<summary type="html">&lt;p&gt;1 wersja&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style='vertical-align: top;' lang='pl'&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← poprzednia wersja&lt;/td&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Wersja z 20:36, 19 wrz 2019&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan='2' style='text-align: center;' lang='pl'&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(Brak różnic)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Bagration</name></author>	</entry>

	<entry>
		<id>https://wiki.czarnobyl.pl/index.php?title=Modu%C5%82:Mapa&amp;diff=5587&amp;oldid=prev</id>
		<title>Paweł Ziemian: Anulowanie wersji 57383732 autorstwa Paweł Ziemian (dyskusja) działało ale nie chcemy ukrywać błędów</title>
		<link rel="alternate" type="text/html" href="https://wiki.czarnobyl.pl/index.php?title=Modu%C5%82:Mapa&amp;diff=5587&amp;oldid=prev"/>
				<updated>2019-09-04T17:44:44Z</updated>
		
		<summary type="html">&lt;p&gt;Anulowanie wersji 57383732 autorstwa &lt;a href=&quot;/index.php?title=Specjalna:Wk%C5%82ad/Pawe%C5%82_Ziemian&quot; title=&quot;Specjalna:Wkład/Paweł Ziemian&quot;&gt;Paweł Ziemian&lt;/a&gt; (&lt;a href=&quot;/index.php?title=Dyskusja_u%C5%BCytkownika:Pawe%C5%82_Ziemian&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Dyskusja użytkownika:Paweł Ziemian (strona nie istnieje)&quot;&gt;dyskusja&lt;/a&gt;) działało ale nie chcemy ukrywać błędów&lt;/p&gt;
&lt;a href=&quot;https://wiki.czarnobyl.pl/index.php?title=Modu%C5%82:Mapa&amp;amp;diff=5587&amp;amp;oldid=1342&quot;&gt;Podgląd zmian&lt;/a&gt;</summary>
		<author><name>Paweł Ziemian</name></author>	</entry>

	<entry>
		<id>https://wiki.czarnobyl.pl/index.php?title=Modu%C5%82:Mapa&amp;diff=1342&amp;oldid=prev</id>
		<title>Bagration: 1 wersja</title>
		<link rel="alternate" type="text/html" href="https://wiki.czarnobyl.pl/index.php?title=Modu%C5%82:Mapa&amp;diff=1342&amp;oldid=prev"/>
				<updated>2016-09-18T13:50:14Z</updated>
		
		<summary type="html">&lt;p&gt;1 wersja&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style='vertical-align: top;' lang='pl'&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← poprzednia wersja&lt;/td&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Wersja z 13:50, 18 wrz 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan='2' style='text-align: center;' lang='pl'&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(Brak różnic)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Bagration</name></author>	</entry>

	<entry>
		<id>https://wiki.czarnobyl.pl/index.php?title=Modu%C5%82:Mapa&amp;diff=1341&amp;oldid=prev</id>
		<title>Paweł Ziemian: + kategoria do śledzenie wywołań</title>
		<link rel="alternate" type="text/html" href="https://wiki.czarnobyl.pl/index.php?title=Modu%C5%82:Mapa&amp;diff=1341&amp;oldid=prev"/>
				<updated>2016-09-14T19:14:40Z</updated>
		
		<summary type="html">&lt;p&gt;+ kategoria do śledzenie wywołań&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local function getMapParams(map, frame)&lt;br /&gt;
	mw.logObject(map, &amp;quot;map&amp;quot;)&lt;br /&gt;
	if not map or (#map == 0) then&lt;br /&gt;
		mw.log(&amp;quot;Brak nazwy mapy lokalizacyjnej&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	local moduleprefix = &amp;quot;Module:Mapa/dane/&amp;quot;&lt;br /&gt;
	if map then&lt;br /&gt;
		local moduletitle = mw.title.new(map)&lt;br /&gt;
		if not moduletitle or (moduletitle.namespace ~= 828) then&lt;br /&gt;
			moduletitle = mw.title.new(moduleprefix..map)&lt;br /&gt;
		end&lt;br /&gt;
		if not moduletitle then&lt;br /&gt;
			mw.log(&amp;quot;„&amp;quot;..map..&amp;quot;” nie jest prawidłową nazwą definicji mapy lokalizacyjnej&amp;quot;)&lt;br /&gt;
		elseif moduletitle.exists then&lt;br /&gt;
			mw.log(&amp;quot;Ładuję mapę z „&amp;quot;..moduletitle.fullText..&amp;quot;”&amp;quot;)&lt;br /&gt;
			local status, mapData = pcall(mw.loadData, moduletitle.fullText)&lt;br /&gt;
			if status then&lt;br /&gt;
				return function(name, variant)&lt;br /&gt;
					if name == nil then&lt;br /&gt;
						mw.logObject(moduletitle.fullText, &amp;quot;GET module title&amp;quot;)&lt;br /&gt;
						return moduletitle.fullText&lt;br /&gt;
					end&lt;br /&gt;
					&lt;br /&gt;
					if name == true then&lt;br /&gt;
						mw.logObject(mapData[variant], &amp;quot;GET map variant&amp;quot;)&lt;br /&gt;
						return type(mapData[variant]) == &amp;quot;table&amp;quot; and variant or 1&lt;br /&gt;
					end&lt;br /&gt;
					&lt;br /&gt;
					if variant and mapData[variant] and mapData[variant][name] then&lt;br /&gt;
						mw.logObject({variant=variant, name=name}, &amp;quot;GET&amp;quot;)&lt;br /&gt;
						return mapData[variant][name]&lt;br /&gt;
					end&lt;br /&gt;
					&lt;br /&gt;
					mw.logObject({name=name}, &amp;quot;GET&amp;quot;)&lt;br /&gt;
					return mapData[1][name] or &amp;quot;&amp;quot;&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			mw.log(&amp;quot;Nie mogę znaleźć definicji podanej mapy lokalizacyjnej. Nie istnieje „&amp;quot;..moduleprefix..map..&amp;quot;”.&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- default fallback&lt;br /&gt;
	local mapData = mw.loadData(moduleprefix..&amp;quot;brak&amp;quot;)&lt;br /&gt;
	return function(name, variant)&lt;br /&gt;
		if name == nil then&lt;br /&gt;
			return false&lt;br /&gt;
		elseif name == false then&lt;br /&gt;
			return (map and (#map &amp;gt; 0)) and map or false&lt;br /&gt;
		elseif name == true then&lt;br /&gt;
			return 1&lt;br /&gt;
		elseif mapData[1][name] == nil then&lt;br /&gt;
			return &amp;quot;&amp;quot;&lt;br /&gt;
		elseif variant and mapData[variant] then&lt;br /&gt;
			return mapData[variant][name] or mapData[1][name]&lt;br /&gt;
		else&lt;br /&gt;
			return mapData[1][name]&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getX(longitude, left, right)&lt;br /&gt;
	local width = (right - left) % 360&lt;br /&gt;
	if width == 0 then&lt;br /&gt;
		width = 360&lt;br /&gt;
	end&lt;br /&gt;
	local distanceFromLeft = (longitude - left) % 360&lt;br /&gt;
	-- the distance needed past the map to the right equals distanceFromLeft - width. the distance needed past the map to the left equals 360 - distanceFromLeft. to minimize page stretching, go whichever way is shorter&lt;br /&gt;
	if distanceFromLeft - width / 2 &amp;gt;= 180 then&lt;br /&gt;
		distanceFromLeft = distanceFromLeft - 360&lt;br /&gt;
	end&lt;br /&gt;
	return 100 * distanceFromLeft / width&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getY(latitude, top, bottom)&lt;br /&gt;
	return 100 * (top - latitude) / (top - bottom)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function formatCoordinates(parameters)&lt;br /&gt;
	mw.logObject(parameters, &amp;quot;formatCoordinates parameters&amp;quot;)&lt;br /&gt;
	if not parameters.coordinates then&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local placement = parameters.placement&lt;br /&gt;
	if not placement then&lt;br /&gt;
		placement = ((parameters.linkFlag == false) or (mw.title.getCurrentTitle().namespace ~= 0)) and &amp;quot;w tekście&amp;quot; or &amp;quot;w tekście i na górze&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	local frame = { args = {&lt;br /&gt;
		parameters.coordinates,&lt;br /&gt;
		parameters.geohack,&lt;br /&gt;
		[&amp;quot;umieść&amp;quot;] = placement,&lt;br /&gt;
		[&amp;quot;dokładność&amp;quot;] = precision,&lt;br /&gt;
	}}&lt;br /&gt;
	local m = require(&amp;quot;Moduł:Koordynaty&amp;quot;)&lt;br /&gt;
	local result = (parameters.linkFlag == false) and m.format(frame) or m.link(frame)&lt;br /&gt;
	mw.logObject(result, &amp;quot;formatCoordinates result&amp;quot;)&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function loadMap(frame, map, variant)&lt;br /&gt;
	local getMapParam = getMapParams(map, frame)&lt;br /&gt;
	return function(param)&lt;br /&gt;
		return getMapParam(param, variant)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function decodePoints(pointsData)&lt;br /&gt;
	if pointsData and (#pointsData &amp;gt; 0) then&lt;br /&gt;
		mw.logObject(&amp;quot;[&amp;quot;..pointsData..&amp;quot;{\&amp;quot;dummy\&amp;quot;:false}]&amp;quot;, &amp;quot;pda&amp;quot;)&lt;br /&gt;
		local data = mw.text.jsonDecode(&amp;quot;[&amp;quot;..pointsData..&amp;quot;{\&amp;quot;dummy\&amp;quot;:false}]&amp;quot;)&lt;br /&gt;
		mw.logObject(data, &amp;quot;data&amp;quot;)&lt;br /&gt;
		table.remove(data) -- remove last dummy&lt;br /&gt;
		mw.logObject(data, &amp;quot;data last removed&amp;quot;)&lt;br /&gt;
		return data&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function estimateTextWidth(wikicode, fontSize)&lt;br /&gt;
	mw.logObject({ wikikode, fontSize }, &amp;quot;estimateTextWidth&amp;quot;)&lt;br /&gt;
	local text = mw.ustring.gsub(wikicode, &amp;quot;%[%[[^\n|%]%[]+|([^\n|%]%[]+)%]%]&amp;quot;, &amp;quot;%1&amp;quot;)&lt;br /&gt;
	mw.logObject(text, &amp;quot;estimateTextWidth 1&amp;quot;)&lt;br /&gt;
	text = mw.ustring.gsub(text, &amp;quot;%[%[([^\n|%]%[]+)%]%]&amp;quot;, &amp;quot;%1&amp;quot;)&lt;br /&gt;
	mw.logObject(text, &amp;quot;estimateTextWidth 2&amp;quot;)&lt;br /&gt;
	text = mw.ustring.gsub(text, &amp;quot;&amp;lt;[^&amp;gt;]*&amp;gt;&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
	mw.logObject(text, &amp;quot;estimateTextWidth 3&amp;quot;)&lt;br /&gt;
	return mw.ustring.len(text) * fontSize&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function drawMap(builder, get, width, fontSize, data)&lt;br /&gt;
	local reliefImage = mw.text.trim(get(&amp;quot;mapa&amp;quot;))&lt;br /&gt;
	mw.logObject(reliefImage, &amp;quot;DRAWMAP reliefImage&amp;quot;)&lt;br /&gt;
	local reliefTitle = mw.title.new(&amp;quot;Plik:&amp;quot;..reliefImage)&lt;br /&gt;
	mw.logObject(reliefTitle, &amp;quot;DRAWMAP reliefTitle&amp;quot;)&lt;br /&gt;
	if not reliefTitle.file.exists then&lt;br /&gt;
		reliefTitle = mw.title.new(&amp;quot;Plik:Image of nothing.svg&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	local file = reliefTitle.file&lt;br /&gt;
	mw.logObject(file, &amp;quot;DRAWMAP file&amp;quot;)&lt;br /&gt;
	local height = file.height *  width / file.width&lt;br /&gt;
	&lt;br /&gt;
	-- przeliczanie punktów na mapie&lt;br /&gt;
	local inside = {}&lt;br /&gt;
	local outside = {}&lt;br /&gt;
	local errors = {}&lt;br /&gt;
	if data and (#data &amp;gt; 0) then&lt;br /&gt;
		local x_func = mw.text.trim(get(&amp;quot;x&amp;quot;))&lt;br /&gt;
		local y_func = mw.text.trim(get(&amp;quot;y&amp;quot;))&lt;br /&gt;
		mw.logObject({x=x_func, y=y_func, }, &amp;quot;xy&amp;quot;)&lt;br /&gt;
		local top = get(&amp;quot;top&amp;quot;)&lt;br /&gt;
		local left = get(&amp;quot;left&amp;quot;)&lt;br /&gt;
		local bottom = get(&amp;quot;bottom&amp;quot;)&lt;br /&gt;
		local right = get(&amp;quot;right&amp;quot;)&lt;br /&gt;
		if #x_func == 0 then&lt;br /&gt;
			x_func = false&lt;br /&gt;
		end&lt;br /&gt;
		if #y_func == 0 then&lt;br /&gt;
			y_func = false&lt;br /&gt;
		end&lt;br /&gt;
		for i, v in ipairs(data) do&lt;br /&gt;
			if v.latitude and v.longitude and v.mark and v.size then&lt;br /&gt;
				-- przeliczanie współrzędnych na pozycje rysowania&lt;br /&gt;
				if x_func then&lt;br /&gt;
					local expx = mw.ustring.gsub(mw.ustring.gsub(x_func, &amp;quot;{{{szerokość}}}&amp;quot;, v.latitude), &amp;quot;{{{długość}}}&amp;quot;, v.longitude)&lt;br /&gt;
					v.x = tonumber(mw.ext.ParserFunctions.expr(expx))&lt;br /&gt;
				else&lt;br /&gt;
					v.x = getX(v.longitude, left, right)&lt;br /&gt;
				end&lt;br /&gt;
				if y_func then&lt;br /&gt;
					local expy = mw.ustring.gsub(mw.ustring.gsub(y_func, &amp;quot;{{{szerokość}}}&amp;quot;, v.latitude), &amp;quot;{{{długość}}}&amp;quot;, v.longitude)&lt;br /&gt;
					v.y = tonumber(mw.ext.ParserFunctions.expr(expy))&lt;br /&gt;
				else&lt;br /&gt;
					v.y = getY(v.latitude, top, bottom)&lt;br /&gt;
				end&lt;br /&gt;
				&lt;br /&gt;
				v.rx = width * v.x / 100&lt;br /&gt;
				v.ry = height * v.y / 100&lt;br /&gt;
				if (v.x &amp;lt; 0) or (v.x &amp;gt; 100) or (v.y &amp;lt; 0) or (v.y &amp;gt; 100) then&lt;br /&gt;
					table.insert(outside, v)&lt;br /&gt;
				else&lt;br /&gt;
					table.insert(inside, v)&lt;br /&gt;
				end&lt;br /&gt;
			elseif v.error then&lt;br /&gt;
				table.insert(errors, v)&lt;br /&gt;
			else&lt;br /&gt;
				-- TODO illegal data or &amp;quot;dummy: false&amp;quot;&lt;br /&gt;
				mw.logObject(v, &amp;quot;illegal at &amp;quot;..tostring(i))&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- automatyczne pozycjonowanie dwóch punktów&lt;br /&gt;
	if (#inside == 2) and inside[1].description and inside[2].description and not inside[1].position and not inside[2].position then&lt;br /&gt;
		local y1 = inside[1].ry&lt;br /&gt;
		local y2 = inside[2].ry&lt;br /&gt;
		if (math.abs(y1 - y2) &amp;lt; 16) and (y1 &amp;gt; 8) and (y2 &amp;gt; 8) and ((height - y1) &amp;gt; 8) and ((height - y2) &amp;gt; 8) and (math.abs(inside[1].rx - inside[2].rx) &amp;lt; 80) then&lt;br /&gt;
			inside[1].position = y2 &amp;gt; y1 and &amp;quot;top&amp;quot; or &amp;quot;bottom&amp;quot;&lt;br /&gt;
			inside[2].position = y1 &amp;gt; y2 and &amp;quot;top&amp;quot; or &amp;quot;bottom&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	mw.logObject(outside, &amp;quot;outside&amp;quot;)&lt;br /&gt;
	mw.logObject(inside, &amp;quot;inside&amp;quot;)&lt;br /&gt;
	mw.logObject(errors, &amp;quot;errors&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	-- tło mapy&lt;br /&gt;
	local relief = builder:tag(&amp;quot;div&amp;quot;)&lt;br /&gt;
	relief:css({ position = &amp;quot;relative&amp;quot;, border = &amp;quot;0 solid #aaa&amp;quot;, padding = &amp;quot;0&amp;quot;, width = tostring(width)..&amp;quot;px&amp;quot; })&lt;br /&gt;
	relief:wikitext(&amp;quot;[[Plik:&amp;quot;, reliefImage, &amp;quot;|&amp;quot;, width, &amp;quot;px|link=&amp;quot;)&lt;br /&gt;
	local reliefInfo = get(&amp;quot;dopełniacz&amp;quot;)&lt;br /&gt;
	if reliefInfo then&lt;br /&gt;
		relief:wikitext(&amp;quot;|Mapa lokalizacyjna &amp;quot;, reliefInfo)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	relief:wikitext(&amp;quot;]]&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	function showError(category, ...)&lt;br /&gt;
		local catLink = &amp;quot;&amp;quot;&lt;br /&gt;
		local known = {&lt;br /&gt;
			[&amp;quot;brak mapy&amp;quot;] = { &amp;quot;'''Brak mapy:''' ''%s''&amp;quot;, &amp;quot;[[Kategoria:Szablony lokalizacyjne - brak mapy]]&amp;quot;, },&lt;br /&gt;
			[&amp;quot;brak kodu mapy&amp;quot;] = { &amp;quot;'''Brak kodu mapy'''&amp;quot;, &amp;quot;[[Kategoria:Szablony lokalizacyjne - brak kodu mapy]]&amp;quot;, },&lt;br /&gt;
			[&amp;quot;współrzędne spoza mapy&amp;quot;] = { &amp;quot;'''Współrzędne spoza mapy:''' ''%f %f''&amp;quot;, &amp;quot;[[Kategoria:Szablony lokalizacyjne - współrzędne spoza mapy]]&amp;quot;, },&lt;br /&gt;
			[&amp;quot;brak współrzędnych&amp;quot;] = { &amp;quot;'''Brak współrzędnych'''&amp;quot;, &amp;quot;[[Kategoria:Szablony lokalizacyjne – brak współrzędnych]]&amp;quot;, },&lt;br /&gt;
			[true] = { &amp;quot;%s&amp;quot;, false },&lt;br /&gt;
			[false] = { &amp;quot;'''''Inny błąd'''''&amp;quot;, false, },&lt;br /&gt;
		}&lt;br /&gt;
		local k = known[category] or known[false]&lt;br /&gt;
		local message = mw.ustring.format(k[1], ...)&lt;br /&gt;
		if k[2] and (mw.title.getCurrentTitle().namespace == 0) then&lt;br /&gt;
			message = message..k[2]&lt;br /&gt;
		end&lt;br /&gt;
		local absolute = relief:tag(&amp;quot;div&amp;quot;)&lt;br /&gt;
			:css( { position = &amp;quot;absolute&amp;quot;, [&amp;quot;z-index&amp;quot;] = 200, top = &amp;quot;50%&amp;quot;, left = &amp;quot;50%&amp;quot;, height = 0, width = 0, margin = 0, padding = 0, } )&lt;br /&gt;
		local msg = absolute:tag(&amp;quot;div&amp;quot;)&lt;br /&gt;
			:css( { [&amp;quot;font-size&amp;quot;] = &amp;quot;90%&amp;quot;, [&amp;quot;line-height&amp;quot;] = &amp;quot;110%&amp;quot;, position = &amp;quot;relative&amp;quot;, width = &amp;quot;16em&amp;quot;, [&amp;quot;z-index&amp;quot;] = 202, top = &amp;quot;-0.5em&amp;quot;, left = &amp;quot;-8em&amp;quot;, float = &amp;quot;center&amp;quot;, [&amp;quot;text-align&amp;quot;] = &amp;quot;center&amp;quot;, background = &amp;quot;white&amp;quot;, color = &amp;quot;red&amp;quot;, } )&lt;br /&gt;
			:wikitext(message)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- brak mapy&lt;br /&gt;
	if not get() then&lt;br /&gt;
		local map = get(false)&lt;br /&gt;
		showError(map and &amp;quot;brak mapy&amp;quot; or &amp;quot;brak kodu mapy&amp;quot;, map)&lt;br /&gt;
		if (#inside == 1) and (#outside == 0) then&lt;br /&gt;
			local v = inside[1]&lt;br /&gt;
			if (v.longitude == 0) and (v.latitude == 0) then&lt;br /&gt;
				mw.log(&amp;quot;dummy (0 0) bez mapy nie jest rysowany&amp;quot;)&lt;br /&gt;
				return&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- błędy&lt;br /&gt;
	if (#inside == 0) and (#outside == 0) then&lt;br /&gt;
		showError(&amp;quot;brak współrzędnych&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	for i, v in ipairs(outside) do&lt;br /&gt;
		mw.logObject(v, &amp;quot;outside[&amp;quot;..tostring(i)..&amp;quot;]&amp;quot;)&lt;br /&gt;
		showError(&amp;quot;współrzędne spoza mapy&amp;quot;, v.latitude, v.longitude)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	for i, v in ipairs(errors) do&lt;br /&gt;
		mw.logObject(v, &amp;quot;error[&amp;quot;..tostring(i)..&amp;quot;]&amp;quot;)&lt;br /&gt;
		showError(true, v.error or &amp;quot;?&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- punkty na mapie&lt;br /&gt;
	for i, v in ipairs(inside) do&lt;br /&gt;
		mw.logObject(v, &amp;quot;inside[&amp;quot;..tostring(i)..&amp;quot;]&amp;quot;)&lt;br /&gt;
		local hsize = tostring(v.size/2)..&amp;quot;px&amp;quot;&lt;br /&gt;
		local size = tostring(v.size)..&amp;quot;px&amp;quot;&lt;br /&gt;
		local absolute = relief:tag(&amp;quot;div&amp;quot;)&lt;br /&gt;
			:css( { position = &amp;quot;absolute&amp;quot;, [&amp;quot;z-index&amp;quot;] = 2, top = tostring(v.y)..&amp;quot;%&amp;quot;, left = tostring(v.x)..&amp;quot;%&amp;quot;, height = 0, width = 0, margin = 0, padding = 0, } )&lt;br /&gt;
		local file = absolute:tag(&amp;quot;div&amp;quot;)&lt;br /&gt;
			:css( { position = &amp;quot;relative&amp;quot;, [&amp;quot;text-align&amp;quot;] = &amp;quot;center&amp;quot;, left = &amp;quot;-&amp;quot;..hsize, top = &amp;quot;-&amp;quot;..hsize, width = size, [&amp;quot;font-size&amp;quot;] = size, [&amp;quot;line-height&amp;quot;] = size, } )&lt;br /&gt;
		file:wikitext(&amp;quot;[[Plik:&amp;quot;, v.mark, &amp;quot;|&amp;quot;, v.size, &amp;quot;x&amp;quot;, size, &amp;quot;|link=&amp;quot;, v.link)&lt;br /&gt;
		if v.description then&lt;br /&gt;
			file:wikitext(&amp;quot;|&amp;quot;, v.description)&lt;br /&gt;
		end&lt;br /&gt;
		file:wikitext(&amp;quot;]]&amp;quot;)&lt;br /&gt;
		-- TODO description&lt;br /&gt;
		if v.description then&lt;br /&gt;
			local desc = absolute:tag(&amp;quot;div&amp;quot;)&lt;br /&gt;
				:css( { [&amp;quot;font-size&amp;quot;] = tostring(fontSize)..&amp;quot;px&amp;quot;, [&amp;quot;line-height&amp;quot;] = tostring(1.2*fontSize)..&amp;quot;px&amp;quot;, [&amp;quot;z-index&amp;quot;] = &amp;quot;90&amp;quot;, [&amp;quot;position&amp;quot;] = &amp;quot;relative&amp;quot;, [&amp;quot;width&amp;quot;] = &amp;quot;10em&amp;quot;, } )&lt;br /&gt;
			local css = {}&lt;br /&gt;
			if v.position == &amp;quot;right&amp;quot; then&lt;br /&gt;
				css = { top = &amp;quot;-1.1em&amp;quot;, left = tostring((v.size / 2) + 2)..&amp;quot;px&amp;quot;, [&amp;quot;text-align&amp;quot;] = &amp;quot;left&amp;quot;, float = &amp;quot;left&amp;quot; }&lt;br /&gt;
			elseif v.position == &amp;quot;left&amp;quot; then&lt;br /&gt;
				css = { top = &amp;quot;-1.1em&amp;quot;, left = &amp;quot;-&amp;quot;..tostring((v.size / 2) + 2)..&amp;quot;px&amp;quot;, [&amp;quot;text-align&amp;quot;] = &amp;quot;right&amp;quot;, float = &amp;quot;right&amp;quot; }&lt;br /&gt;
			elseif v.position == &amp;quot;top&amp;quot; then&lt;br /&gt;
				css = { top = &amp;quot;-2.0em&amp;quot;, left = &amp;quot;-5em&amp;quot;, [&amp;quot;text-align&amp;quot;] = &amp;quot;center&amp;quot;, float = &amp;quot;center&amp;quot; }&lt;br /&gt;
			elseif v.position == &amp;quot;bottom&amp;quot; then&lt;br /&gt;
				css = { top = &amp;quot;-0.1em&amp;quot;, left = &amp;quot;-5em&amp;quot;, [&amp;quot;text-align&amp;quot;] = &amp;quot;center&amp;quot;, float = &amp;quot;center&amp;quot; }&lt;br /&gt;
			else -- auto&lt;br /&gt;
				local textWidth = estimateTextWidth(v.description, fontSize) * 0.6&lt;br /&gt;
				mw.logObject( { x = v.x, rx = v.rx, tw = textWidth, w = width, rw = v.rx + textWidth }, &amp;quot;auto position: &amp;quot;..v.description)&lt;br /&gt;
				if (v.x &amp;lt; 50) or ((v.rx + textWidth + (v.size / 2) + 2) &amp;lt; width) then -- right&lt;br /&gt;
					css = { left = tostring((v.size / 2) + 2)..&amp;quot;px&amp;quot;, [&amp;quot;text-align&amp;quot;] = &amp;quot;left&amp;quot;, float = &amp;quot;left&amp;quot; }&lt;br /&gt;
				else -- left&lt;br /&gt;
					css = { top = &amp;quot;-1.1em&amp;quot;, left = &amp;quot;-&amp;quot;..tostring((v.size / 2) + 2)..&amp;quot;px&amp;quot;, [&amp;quot;text-align&amp;quot;] = &amp;quot;right&amp;quot;, float = &amp;quot;right&amp;quot; }&lt;br /&gt;
				end&lt;br /&gt;
					&lt;br /&gt;
				css.top = v.y &amp;lt; 10 and &amp;quot;-0.85em&amp;quot; or &amp;quot;-1.1em&amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			desc:css(css)&lt;br /&gt;
			desc:tag(&amp;quot;span&amp;quot;)&lt;br /&gt;
				:css({ padding = &amp;quot;1px&amp;quot;, [&amp;quot;text-shadow&amp;quot;] = &amp;quot;0 0 5px white;&amp;quot; })&lt;br /&gt;
				:wikitext(v.description)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeTrackingLinks(get, group)&lt;br /&gt;
	local linkAlias = get(&amp;quot;link alias&amp;quot;)&lt;br /&gt;
	local mapVariant = get(true)&lt;br /&gt;
	mw.logObject({group=group, name=linkAlias, variant=mapVariant}, &amp;quot;makeTrakcingLinks&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	if not linkAlias or (#linkAlias == 0) then&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local trackingLink = &amp;quot;Moduł:Mapa/linkujące/&amp;quot;..linkAlias..&amp;quot;/&amp;quot;..group&lt;br /&gt;
	mw.logObject({trackingLink, trackingLink..&amp;quot;/&amp;quot;..mapVariant}, &amp;quot;links&amp;quot;)&lt;br /&gt;
	_ = mw.title.new(trackingLink).id&lt;br /&gt;
	_ = mw.title.new(trackingLink..&amp;quot;/&amp;quot;..mapVariant).id&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return {&lt;br /&gt;
	&lt;br /&gt;
	[&amp;quot;Wartość&amp;quot;] = function(frame)&lt;br /&gt;
		local f = frame.args[1] and frame or frame:getParent()&lt;br /&gt;
		return getMapParams(f.args[1], frame)(f.args[2], f.args[3])&lt;br /&gt;
	end,&lt;br /&gt;
	&lt;br /&gt;
	[&amp;quot;Infobox&amp;quot;] = function(frame)&lt;br /&gt;
		mw.log(&amp;quot;{{#invoke:Moduł:Mapa|Infobox}}&amp;quot;)&lt;br /&gt;
		local args = require('Module:Arguments').getArgs(frame, {&lt;br /&gt;
			trim = true,&lt;br /&gt;
			removeBlanks = true,&lt;br /&gt;
		})&lt;br /&gt;
		local defaultIcon = &amp;quot;[[Plik:Geographylogo.svg|20px|alt=Ziemia|link=Ziemia]]&amp;quot;&lt;br /&gt;
		local map = args[&amp;quot;mapa&amp;quot;] or &amp;quot;brak&amp;quot;&lt;br /&gt;
		local variant = args[&amp;quot;wariant&amp;quot;]&lt;br /&gt;
		local description = args[&amp;quot;opis&amp;quot;]&lt;br /&gt;
		local mark = args[&amp;quot;znak na mapie&amp;quot;] or &amp;quot;Red pog.svg&amp;quot;&lt;br /&gt;
		local markSize = tonumber(args[&amp;quot;wielkość znaku&amp;quot;]) or 6&lt;br /&gt;
		local coordinates = args[&amp;quot;współrzędne&amp;quot;]&lt;br /&gt;
		local extraCategory = false&lt;br /&gt;
		if not coordinates then&lt;br /&gt;
			local latitude = tonumber(args[&amp;quot;szerokość&amp;quot;])&lt;br /&gt;
			local longitude = tonumber(args[&amp;quot;długość&amp;quot;])&lt;br /&gt;
			if latitude and longitude then&lt;br /&gt;
				coordinates = tostring(latitude)..&amp;quot; &amp;quot;..tostring(longitude)&lt;br /&gt;
				mw.log(&amp;quot;współrzędne tylko w starym stylu: &amp;quot;..coordinates)&lt;br /&gt;
				extraCategory = &amp;quot;[[Kategoria:Infobox mapa lokalizacyjna - szerokość i długość]]&amp;quot;&lt;br /&gt;
			else&lt;br /&gt;
				mw.log(&amp;quot;infobox może wyszukać współrzędne w wikidanych&amp;quot;)&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			mw.log(&amp;quot;współrzędne: &amp;quot;..coordinates)&lt;br /&gt;
		end&lt;br /&gt;
		local precision = args[&amp;quot;dokładność&amp;quot;]&lt;br /&gt;
		local twoMaps = args[&amp;quot;dwie mapy&amp;quot;]&lt;br /&gt;
		local category = args[&amp;quot;kategoria&amp;quot;]&lt;br /&gt;
		local geohack = args[&amp;quot;opcje geohack&amp;quot;]&lt;br /&gt;
		local position = args[&amp;quot;pozycja opisu&amp;quot;]&lt;br /&gt;
		local points = args[&amp;quot;punkty mapy&amp;quot;]&lt;br /&gt;
		mw.logObject({precision = precision, twoMaps = twoMaps, category = category, geohack = geohack, position = position, points = points}, &amp;quot;argumenty&amp;quot;)&lt;br /&gt;
		if points and not string.match(points, &amp;quot;%s*{&amp;quot;) then&lt;br /&gt;
			mw.log(&amp;quot;załączone punkty do mapy są w nieodpowiednim formacie&amp;quot;)&lt;br /&gt;
			return&lt;br /&gt;
		end&lt;br /&gt;
		if not points and not coordinates then&lt;br /&gt;
			if args[&amp;quot;wikidane&amp;quot;] == &amp;quot;nie&amp;quot; then&lt;br /&gt;
				mw.log(&amp;quot;brak punktów na mapę, a nie ma pozwolenia na Wikidane&amp;quot;)&lt;br /&gt;
			else&lt;br /&gt;
				mw.log(&amp;quot;brak punktów na mapę i współrzędnych, nadszedł czas na Wikidane&amp;quot;)&lt;br /&gt;
				local display = true&lt;br /&gt;
				if (map ~= &amp;quot;osobna&amp;quot;) and (map ~= &amp;quot;pusta&amp;quot;) and (map ~= &amp;quot;niedostępna&amp;quot;) then&lt;br /&gt;
					display = &amp;quot;#coordinates&amp;quot;&lt;br /&gt;
				end&lt;br /&gt;
				local p = require(&amp;quot;Moduł:Koordynaty&amp;quot;).punkt({&lt;br /&gt;
					[&amp;quot;opcje geohack&amp;quot;] = geohack,&lt;br /&gt;
					[&amp;quot;znak&amp;quot;] = mark,&lt;br /&gt;
					[&amp;quot;rozmiar znaku&amp;quot;] = markSize,&lt;br /&gt;
					[&amp;quot;opis&amp;quot;] = description,&lt;br /&gt;
					[&amp;quot;pozycja&amp;quot;] = position,&lt;br /&gt;
					[&amp;quot;dokładność&amp;quot;] = precision,&lt;br /&gt;
					display = display,&lt;br /&gt;
				})&lt;br /&gt;
				if not p then&lt;br /&gt;
					mw.log(&amp;quot;brak punktów na mapę nawet w Wikidanych&amp;quot;)&lt;br /&gt;
				end&lt;br /&gt;
				&lt;br /&gt;
				mw.logObject(p, &amp;quot;p&amp;quot;)&lt;br /&gt;
				points = p&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if not points and not coordinates and (mw.title.getCurrentTitle().fullText == frame:getParent():getTitle()) and (type(frame.getParent) == &amp;quot;function&amp;quot;) then&lt;br /&gt;
			mw.log(&amp;quot;TEST ANY ARG&amp;quot;)&lt;br /&gt;
			local any = false&lt;br /&gt;
			for k, v in pairs(frame:getParent().args) do&lt;br /&gt;
				mw.log({k=k, v=v}, &amp;quot;ANY ARG&amp;quot;)&lt;br /&gt;
				any = true&lt;br /&gt;
				break&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			if not any then&lt;br /&gt;
				-- demo&lt;br /&gt;
				mw.log(&amp;quot;brak jakichkolwiek argumentów w szablonie to tryb demo&amp;quot;)&lt;br /&gt;
				points = require(&amp;quot;Moduł:Koordynaty&amp;quot;).punkt({ &amp;quot;0 0&amp;quot;, display = true })&lt;br /&gt;
				map = &amp;quot;brak&amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if not points and not coordinates then&lt;br /&gt;
			if not category or (mw.title.getCurrentTitle().namespace ~= 0) or (map == &amp;quot;żadna&amp;quot;) or (map == &amp;quot;osobna&amp;quot;) or (map == &amp;quot;pusta&amp;quot;) or (map == &amp;quot;niedostępna&amp;quot;) then&lt;br /&gt;
				return&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			mw.log(&amp;quot;[[Kategoria:Szablony lokalizacyjne – brak współrzędnych – &amp;quot;..category..&amp;quot;]]&amp;quot;)&lt;br /&gt;
			return '|- style=&amp;quot;display:none;&amp;quot;\n!colspan=&amp;quot;2&amp;quot;|brak współrzędnych[[Kategoria:Szablony lokalizacyjne – brak współrzędnych – '..category..']]\n|-'&lt;br /&gt;
		end&lt;br /&gt;
		if coordinates then&lt;br /&gt;
			local p = require(&amp;quot;Moduł:Koordynaty&amp;quot;).punkt({&lt;br /&gt;
				coordinates,&lt;br /&gt;
				[&amp;quot;opcje geohack&amp;quot;] = geohack,&lt;br /&gt;
				[&amp;quot;znak&amp;quot;] = mark,&lt;br /&gt;
				[&amp;quot;rozmiar znaku&amp;quot;] = markSize,&lt;br /&gt;
				[&amp;quot;opis&amp;quot;] = description,&lt;br /&gt;
				[&amp;quot;pozycja&amp;quot;] = position,&lt;br /&gt;
			})&lt;br /&gt;
			mw.logObject(p, &amp;quot;p&amp;quot;)&lt;br /&gt;
			points = points and (p..points) or p&lt;br /&gt;
			mw.logObject(points, &amp;quot;points (2)&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		local pointsData = decodePoints(points)&lt;br /&gt;
		&lt;br /&gt;
		local result = {}&lt;br /&gt;
		if extraCategory then&lt;br /&gt;
			table.insert(result, '|- style=&amp;quot;display:none;&amp;quot;\n!colspan=&amp;quot;2&amp;quot;|stare współrzędne '..extraCategory..']]\n|-')&lt;br /&gt;
		end&lt;br /&gt;
		local coords = false&lt;br /&gt;
		local icon = false&lt;br /&gt;
		if (map == &amp;quot;żadna&amp;quot;) or (map == &amp;quot;none&amp;quot;) then&lt;br /&gt;
			-- TODO współrzędne, geohack, linkuj=tak, dokładność=kątowo, umieść=w tekście (i na górze)&lt;br /&gt;
			icon = defaultIcon&lt;br /&gt;
			coords = formatCoordinates({&lt;br /&gt;
				coordinates = coordinates,&lt;br /&gt;
				geohack = geohack,&lt;br /&gt;
				linkFlag = true,&lt;br /&gt;
				precision = precision or &amp;quot;kątowo&amp;quot;,&lt;br /&gt;
			})&lt;br /&gt;
		elseif map == &amp;quot;osobna&amp;quot; then&lt;br /&gt;
			-- TODO współrzędne, geohack, linkuj=tak, dokładność=kątowo, umieść=w tekście&lt;br /&gt;
			icon = defaultIcon&lt;br /&gt;
			coords = formatCoordinates({&lt;br /&gt;
				coordinates = coordinates,&lt;br /&gt;
				geohack = &amp;quot;globe:none&amp;quot;,&lt;br /&gt;
				linkFlag = true,&lt;br /&gt;
				precision = precision or &amp;quot;kątowo&amp;quot;,&lt;br /&gt;
				placement = &amp;quot;w tekście&amp;quot;&lt;br /&gt;
			})&lt;br /&gt;
		elseif map == &amp;quot;pusta&amp;quot; then&lt;br /&gt;
			-- no map nor coordinates&lt;br /&gt;
		elseif map == &amp;quot;niedostępna&amp;quot; then&lt;br /&gt;
			-- TODO współrzędne, globe:none, linkuj=nie, dokładność=dziesiętnie, normalizacja=auto, ikona=&lt;br /&gt;
			coords = formatCoordinates({&lt;br /&gt;
				coordinates = coordinates,&lt;br /&gt;
				geohack = &amp;quot;globe:none&amp;quot;,&lt;br /&gt;
				linkFlag = false,&lt;br /&gt;
				precision = precision or &amp;quot;dziesiętnie&amp;quot;,&lt;br /&gt;
			})&lt;br /&gt;
		else&lt;br /&gt;
			local maps = {}&lt;br /&gt;
			for v in mw.ustring.gmatch(map, &amp;quot;[^#]+&amp;quot;) do&lt;br /&gt;
				table.insert(maps, mw.text.trim(v))&lt;br /&gt;
			end&lt;br /&gt;
			if #maps == 0 then&lt;br /&gt;
				table.insert(maps, map)&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			local mapIndex = 1&lt;br /&gt;
			local map = maps[mapIndex]&lt;br /&gt;
			local get = loadMap(frame, map, variant)&lt;br /&gt;
			-- prepare coordinates under the map&lt;br /&gt;
			icon = mw.text.trim(get(&amp;quot;ikona&amp;quot;) or &amp;quot;&amp;quot;)&lt;br /&gt;
			if #icon == 0 then&lt;br /&gt;
				icon = defaultIcon&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			coords = formatCoordinates({&lt;br /&gt;
				coordinates = coordinates,&lt;br /&gt;
				geohack = get(&amp;quot;globe&amp;quot;) or geohack,&lt;br /&gt;
				linkFlag = true,&lt;br /&gt;
				precision = precision or &amp;quot;kątowo&amp;quot;,&lt;br /&gt;
			})&lt;br /&gt;
			if not coords and pointsData and (#pointsData &amp;gt; 0) then&lt;br /&gt;
				icon = false&lt;br /&gt;
				coords = pointsData[1].display&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			-- tracking link, pseudo reference to primary map&lt;br /&gt;
			makeTrackingLinks(get, &amp;quot;primary&amp;quot;)&lt;br /&gt;
			&lt;br /&gt;
			-- draw maps&lt;br /&gt;
			while map do&lt;br /&gt;
				mw.logObject(map, &amp;quot;infobox-draw-map&amp;quot;)&lt;br /&gt;
				map = nil&lt;br /&gt;
				-- draw map&lt;br /&gt;
				local mapWidth = tonumber(get(&amp;quot;rozmiar&amp;quot;)) or 238&lt;br /&gt;
				if mapWidth &amp;gt; 238 then&lt;br /&gt;
					mapWidth = 238&lt;br /&gt;
				elseif mapWidth &amp;lt; 100 then&lt;br /&gt;
					mapWidth = 100&lt;br /&gt;
				end&lt;br /&gt;
				local map1 = mw.html.create(&amp;quot;div&amp;quot;)&lt;br /&gt;
					:css( { margin=&amp;quot;0 auto&amp;quot;, [&amp;quot;text-align&amp;quot;]=&amp;quot;center&amp;quot;, width=tostring(mapWidth+4)..&amp;quot;px&amp;quot; } )&lt;br /&gt;
				map1:tag(&amp;quot;div&amp;quot;)&lt;br /&gt;
					:css( { [&amp;quot;font-weight&amp;quot;]= &amp;quot;bold&amp;quot;, color=&amp;quot;gray&amp;quot; } )&lt;br /&gt;
					:wikitext(&amp;quot;Położenie na mapie &amp;quot;, get(&amp;quot;dopełniacz&amp;quot;))&lt;br /&gt;
				drawMap(map1:tag(&amp;quot;div&amp;quot;):addClass(&amp;quot;mapa-lokalizacyjna&amp;quot;), get, mapWidth, 12.6, pointsData)&lt;br /&gt;
				table.insert(result, '|- class=&amp;quot;infobox-locationmap&amp;quot; style=&amp;quot;background-color:white; text-align:center; border-top:1px solid #aaa;&amp;quot;\n|colspan=&amp;quot;2&amp;quot;|')&lt;br /&gt;
				table.insert(result, tostring(map1:allDone()))&lt;br /&gt;
				table.insert(result, &amp;quot;\n&amp;quot;)&lt;br /&gt;
				-- next parent&lt;br /&gt;
				if (#maps == 1) and (twoMaps ~= &amp;quot;nie&amp;quot;) then&lt;br /&gt;
					local second = mw.text.trim(get(&amp;quot;nadrzędna&amp;quot;) or &amp;quot;&amp;quot;)&lt;br /&gt;
					if second and (#second &amp;gt; 0) then&lt;br /&gt;
						map = second&lt;br /&gt;
						get = loadMap(frame, map, variant)&lt;br /&gt;
					end&lt;br /&gt;
				elseif mapIndex &amp;lt; #maps then&lt;br /&gt;
					mapIndex = mapIndex + 1&lt;br /&gt;
					map = maps[mapIndex]&lt;br /&gt;
					get = loadMap(frame, map, variant)&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		if coords then&lt;br /&gt;
			table.insert(result, '|-\n|colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:white; text-align:center; border-bottom:1px solid #aaa;&amp;quot;|')&lt;br /&gt;
			table.insert(result, icon and (icon..&amp;quot; &amp;quot;) or &amp;quot;&amp;quot;)&lt;br /&gt;
			table.insert(result, coords)&lt;br /&gt;
			table.insert(result, &amp;quot;\n&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		if #result &amp;gt; 0 then&lt;br /&gt;
			table.insert(result, &amp;quot;|-&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		return table.concat(result)&lt;br /&gt;
	end,&lt;br /&gt;
	&lt;br /&gt;
	[&amp;quot;Thumb&amp;quot;] = function(frame)&lt;br /&gt;
		local args = require('Module:Arguments').getArgs(frame, {&lt;br /&gt;
			trim = true,&lt;br /&gt;
			removeBlanks = false,&lt;br /&gt;
		})&lt;br /&gt;
		local map = args[&amp;quot;mapa&amp;quot;] or args[1] or &amp;quot;{{{1}}}&amp;quot;&lt;br /&gt;
		if #map == 0 then&lt;br /&gt;
			map = nil&lt;br /&gt;
		end&lt;br /&gt;
		local variant = args[&amp;quot;wariant&amp;quot;]&lt;br /&gt;
		local width = tonumber(args[&amp;quot;rozmiar&amp;quot;]) or 238&lt;br /&gt;
		local fontSize = tonumber(args[&amp;quot;font-size&amp;quot;]) or 12.6&lt;br /&gt;
		local align = args[&amp;quot;wyrównanie&amp;quot;] or &amp;quot;right&amp;quot;&lt;br /&gt;
		local footer = args[&amp;quot;podpis&amp;quot;]&lt;br /&gt;
		local pointsData = decodePoints(args[&amp;quot;punkty mapy&amp;quot;])&lt;br /&gt;
		&lt;br /&gt;
		local get = loadMap(frame, map, variant)&lt;br /&gt;
&lt;br /&gt;
		-- tracking link, pseudo reference to this map&lt;br /&gt;
		makeTrackingLinks(get, &amp;quot;standalone&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
		local positionClass = {&lt;br /&gt;
			[&amp;quot;center&amp;quot;] = &amp;quot;center&amp;quot;,&lt;br /&gt;
			[&amp;quot;right&amp;quot;] = &amp;quot;tright&amp;quot;,&lt;br /&gt;
			[&amp;quot;left&amp;quot;] = &amp;quot;tleft&amp;quot;,&lt;br /&gt;
			[&amp;quot;&amp;quot;] = &amp;quot;tnone&amp;quot;,&lt;br /&gt;
		}&lt;br /&gt;
		local thumb = mw.html.create(&amp;quot;div&amp;quot;)&lt;br /&gt;
			:addClass(&amp;quot;thumb&amp;quot;)&lt;br /&gt;
			:addClass(positionClass[align] or align)&lt;br /&gt;
			:addClass(&amp;quot;panel-with-scroll&amp;quot;)&lt;br /&gt;
			:wikitext('\n')&lt;br /&gt;
		local thumbinner = thumb:tag(&amp;quot;div&amp;quot;)&lt;br /&gt;
			:addClass(&amp;quot;thumbinner&amp;quot;)&lt;br /&gt;
			:css({ width = tostring(width + 2)..&amp;quot;px&amp;quot; })&lt;br /&gt;
			:wikitext('\n')&lt;br /&gt;
		local border = thumbinner:tag(&amp;quot;div&amp;quot;)&lt;br /&gt;
			:css({ border = &amp;quot;1px solid #ccc&amp;quot;, width = tostring(width)..&amp;quot;px !important&amp;quot; })&lt;br /&gt;
		local builder = border:tag(&amp;quot;div&amp;quot;)&lt;br /&gt;
			--:addClass(&amp;quot;mapa-lokalizacyjna&amp;quot;)&lt;br /&gt;
			:css({ margin = &amp;quot;0 auto&amp;quot;, width = tostring(width)..&amp;quot;px&amp;quot; })&lt;br /&gt;
		drawMap(builder, get, width, fontSize, pointsData)&lt;br /&gt;
		thumbinner&lt;br /&gt;
			:wikitext('\n')&lt;br /&gt;
		local thumbcaption = thumbinner:tag(&amp;quot;div&amp;quot;)&lt;br /&gt;
			:addClass(&amp;quot;thumbcaption&amp;quot;)&lt;br /&gt;
		thumbcaption:tag(&amp;quot;div&amp;quot;)&lt;br /&gt;
			:addClass(&amp;quot;magnify&amp;quot;)&lt;br /&gt;
			:wikitext(&amp;quot;[[Plik:Geographylogo.svg|16x16px|link=Wikiprojekt:Szablony lokalizacyjne]]&amp;quot;)&lt;br /&gt;
		if footer and (#footer &amp;gt; 0) then&lt;br /&gt;
			thumbcaption:wikitext(footer)&lt;br /&gt;
		else&lt;br /&gt;
			thumbcaption:wikitext(&amp;quot;Położenie na mapie &amp;quot;, mw.text.nowiki(get(&amp;quot;dopełniacz&amp;quot;) or &amp;quot;&amp;quot;))&lt;br /&gt;
		end&lt;br /&gt;
		thumbinner&lt;br /&gt;
			:wikitext('\n')&lt;br /&gt;
		thumb&lt;br /&gt;
			:wikitext('\n')&lt;br /&gt;
		return thumb:allDone()&lt;br /&gt;
	end,&lt;br /&gt;
	&lt;br /&gt;
	[&amp;quot;Inline&amp;quot;] = function(frame)&lt;br /&gt;
		local args = require('Module:Arguments').getArgs(frame, {&lt;br /&gt;
			trim = true,&lt;br /&gt;
			removeBlanks = false,&lt;br /&gt;
		})&lt;br /&gt;
		local map = args[&amp;quot;mapa&amp;quot;] or args[1] or &amp;quot;{{{1}}}&amp;quot;&lt;br /&gt;
		if #map == 0 then&lt;br /&gt;
			map = nil&lt;br /&gt;
		end&lt;br /&gt;
		local variant = args[&amp;quot;wariant&amp;quot;]&lt;br /&gt;
		local width = tonumber(args[&amp;quot;rozmiar&amp;quot;]) or 238&lt;br /&gt;
		local fontSize = tonumber(args[&amp;quot;font-size&amp;quot;]) or 12.6&lt;br /&gt;
		local pointsData = decodePoints(args[&amp;quot;punkty mapy&amp;quot;])&lt;br /&gt;
		&lt;br /&gt;
		local get = loadMap(frame, map, variant)&lt;br /&gt;
&lt;br /&gt;
		-- tracking link, pseudo reference to this map&lt;br /&gt;
		makeTrackingLinks(get, &amp;quot;standalone&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
		local builder = mw.html.create(&amp;quot;div&amp;quot;)&lt;br /&gt;
			:addClass(&amp;quot;mapa-lokalizacyjna&amp;quot;)&lt;br /&gt;
			:css({ margin =&amp;quot;0 auto&amp;quot;, width = tostring(width + 2)..&amp;quot;px&amp;quot;, padding = &amp;quot;3px&amp;quot;, margin = &amp;quot;3px&amp;quot; })&lt;br /&gt;
		drawMap(builder, get, width, fontSize, pointsData)&lt;br /&gt;
		return builder:allDone()&lt;br /&gt;
	end,&lt;br /&gt;
&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Paweł Ziemian</name></author>	</entry>

	</feed>