<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="cs">
	<id>https://wiki.czchan.org/w/index.php?action=history&amp;feed=atom&amp;title=Modul%3ASou%C5%99adnice</id>
	<title>Modul:Souřadnice - Historie editací</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.czchan.org/w/index.php?action=history&amp;feed=atom&amp;title=Modul%3ASou%C5%99adnice"/>
	<link rel="alternate" type="text/html" href="https://wiki.czchan.org/w/index.php?title=Modul:Sou%C5%99adnice&amp;action=history"/>
	<updated>2026-05-13T18:44:02Z</updated>
	<subtitle>Historie editací této stránky</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://wiki.czchan.org/w/index.php?title=Modul:Sou%C5%99adnice&amp;diff=223&amp;oldid=prev</id>
		<title>Sneedmaster: naimportována 1 revize</title>
		<link rel="alternate" type="text/html" href="https://wiki.czchan.org/w/index.php?title=Modul:Sou%C5%99adnice&amp;diff=223&amp;oldid=prev"/>
		<updated>2026-02-21T21:01:22Z</updated>

		<summary type="html">&lt;p&gt;naimportována 1 revize&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;cs&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Starší verze&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Verze z 21. 2. 2026, 21:01&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;cs&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(Žádný rozdíl)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key nuwiki-nuwiki-:diff:1.41:old-222:rev-223 --&gt;
&lt;/table&gt;</summary>
		<author><name>Sneedmaster</name></author>
	</entry>
	<entry>
		<id>https://wiki.czchan.org/w/index.php?title=Modul:Sou%C5%99adnice&amp;diff=222&amp;oldid=prev</id>
		<title>wp&gt;Legoktm: Replacing Module:No globals with require(&#039;strict&#039;) (more info) #noglobals</title>
		<link rel="alternate" type="text/html" href="https://wiki.czchan.org/w/index.php?title=Modul:Sou%C5%99adnice&amp;diff=222&amp;oldid=prev"/>
		<updated>2026-01-06T00:40:11Z</updated>

		<summary type="html">&lt;p&gt;Replacing Module:No globals with require(&amp;#039;strict&amp;#039;) (&lt;a href=&quot;https://meta.wikimedia.org/wiki/User:Legoktm/No_globals&quot; class=&quot;extiw&quot; title=&quot;m:User:Legoktm/No globals&quot;&gt;more info&lt;/a&gt;) #noglobals&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nová stránka&lt;/b&gt;&lt;/p&gt;&lt;div&gt;require(&amp;#039;strict&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
--- Mapování z ID entity na Wikidatech na identifikátor tělesa v GeoHacku.&lt;br /&gt;
p.myGlobes = {&lt;br /&gt;
	Q2 = &amp;quot;earth&amp;quot;,&lt;br /&gt;
	Q308 = &amp;quot;mercury&amp;quot;,&lt;br /&gt;
	Q313 = &amp;quot;venus&amp;quot;,&lt;br /&gt;
	Q405 = &amp;quot;moon&amp;quot;,&lt;br /&gt;
	Q111 = &amp;quot;mars&amp;quot;,&lt;br /&gt;
	Q7547 = &amp;quot;phobos&amp;quot;,&lt;br /&gt;
	Q7548 = &amp;quot;deimos&amp;quot;,&lt;br /&gt;
	Q3169 = &amp;quot;ganymede&amp;quot;,&lt;br /&gt;
	Q3134 = &amp;quot;callisto&amp;quot;,&lt;br /&gt;
	Q3123 = &amp;quot;io&amp;quot;,&lt;br /&gt;
	Q3143 = &amp;quot;europa&amp;quot;,&lt;br /&gt;
	Q15034 = &amp;quot;mimas&amp;quot;,&lt;br /&gt;
	Q3303 = &amp;quot;enceladus&amp;quot;,&lt;br /&gt;
	Q15047 = &amp;quot;tethys&amp;quot;,&lt;br /&gt;
	Q15040 = &amp;quot;dione&amp;quot;,&lt;br /&gt;
	Q15050 = &amp;quot;rhea&amp;quot;,&lt;br /&gt;
	Q2565 = &amp;quot;titan&amp;quot;,&lt;br /&gt;
	Q15037 = &amp;quot;hyperion&amp;quot;,&lt;br /&gt;
	Q17958 = &amp;quot;iapetus&amp;quot;,&lt;br /&gt;
	Q17975 = &amp;quot;phoebe&amp;quot;,&lt;br /&gt;
	Q3352 = &amp;quot;miranda&amp;quot;,&lt;br /&gt;
	Q3343 = &amp;quot;ariel&amp;quot;,&lt;br /&gt;
	Q3338 = &amp;quot;umbriel&amp;quot;,&lt;br /&gt;
	Q3322 = &amp;quot;titania&amp;quot;,&lt;br /&gt;
	Q3332 = &amp;quot;oberon&amp;quot;,&lt;br /&gt;
	Q3359 = &amp;quot;triton&amp;quot;,&lt;br /&gt;
	Q339 = &amp;quot;pluto&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local roundingForType = {&lt;br /&gt;
	landmark = 2,&lt;br /&gt;
	railwaystation = 2,&lt;br /&gt;
	pass = 2,&lt;br /&gt;
	edu = 2&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- dec2dms(0) --&amp;gt; 0°&lt;br /&gt;
-- dec2dms(10.5) --&amp;gt; 10°30′&lt;br /&gt;
-- dec2dms(0.016667) --&amp;gt; 0°1′&lt;br /&gt;
-- dec2dms(0.004166) --&amp;gt; 0°0′15″&lt;br /&gt;
&lt;br /&gt;
function p._dec2dms(value, precision, display)&lt;br /&gt;
	value = math.abs(value)&lt;br /&gt;
	local sec, secfrac = math.modf(value * 3600 + 0.005)&lt;br /&gt;
	local minTotal = math.floor(value * 60 + 0.5)&lt;br /&gt;
	if display == &amp;quot;table&amp;quot; then&lt;br /&gt;
		precision = 0&lt;br /&gt;
	elseif not precision then&lt;br /&gt;
		if sec % 60 &amp;gt; 0 then&lt;br /&gt;
			precision = 0&lt;br /&gt;
		elseif minTotal % 60 &amp;gt; 0 then&lt;br /&gt;
			precision = -1&lt;br /&gt;
		else&lt;br /&gt;
			precision = -2&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if precision == -2 then&lt;br /&gt;
		local deg = math.floor(value + 0.5)&lt;br /&gt;
		return string.format(&amp;quot;%d°&amp;quot;, deg)&lt;br /&gt;
	elseif precision == -1 then&lt;br /&gt;
		local min = minTotal % 60&lt;br /&gt;
		local deg = math.floor(minTotal / 60)&lt;br /&gt;
		return string.format(&amp;quot;%d°%d′&amp;quot;, deg, min)&lt;br /&gt;
	else&lt;br /&gt;
		local mult = 10^precision&lt;br /&gt;
		local secTotal = math.floor(value * 3600 * mult + 0.5) / mult&lt;br /&gt;
		local min = math.floor(secTotal / 60)&lt;br /&gt;
		local sec = secTotal - min * 60&lt;br /&gt;
		local deg = math.floor(min / 60)&lt;br /&gt;
		min = min % 60&lt;br /&gt;
		-- ošetření zaokrouhlovací chyby&lt;br /&gt;
		sec = math.floor(sec * mult + 0.1) / mult&lt;br /&gt;
&lt;br /&gt;
		if display ~= &amp;quot;table&amp;quot; then&lt;br /&gt;
			local lang = mw.language.getContentLanguage()&lt;br /&gt;
			return string.format(&amp;quot;%d°%d′%s″&amp;quot;, deg, min, lang:formatNum(sec))&lt;br /&gt;
		else&lt;br /&gt;
			return string.format(&amp;quot;%d°%02d′%02d″&amp;quot;, deg, min, sec)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.dec2dms(frame)&lt;br /&gt;
	return p._dec2dms(frame.args[1], frame.args[2], nil)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._renderCoordinates(args, frame)&lt;br /&gt;
	local pageTitle = mw.title.getCurrentTitle()&lt;br /&gt;
	local lat = tonumber(args[1])&lt;br /&gt;
	local lon = tonumber(args[2])&lt;br /&gt;
	if not lat or not lon then&lt;br /&gt;
		local err = &amp;quot;&amp;lt;span class=&amp;#039;error&amp;#039;&amp;gt;Chybná syntaxe souřadnic: &amp;lt;code&amp;gt;&amp;quot; .. mw.text.nowiki(args[1] or &amp;quot;&amp;quot;) .. &amp;quot;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;quot; .. mw.text.nowiki(args[2] or &amp;quot;&amp;quot;) .. &amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
		if pageTitle.namespace == 0 then err = err .. &amp;quot;[[Kategorie:Údržba:Články s chybným vložením souřadnic]]&amp;quot; end&lt;br /&gt;
		return err&lt;br /&gt;
	end&lt;br /&gt;
	local display = args.display&lt;br /&gt;
	local isMain = display == &amp;quot;top&amp;quot; or display == &amp;quot;infobox&amp;quot;&lt;br /&gt;
	local globe = args.globe&lt;br /&gt;
	local explicitName = args.name&lt;br /&gt;
	local name = explicitName or (isMain and pageTitle.text)&lt;br /&gt;
	local typ = args.typ or args.type&lt;br /&gt;
	local region = args.region&lt;br /&gt;
	local scale = args.scale&lt;br /&gt;
&lt;br /&gt;
	local rounding = typ and roundingForType[typ]&lt;br /&gt;
	typ = typ or &amp;quot;landmark&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	local geoParams = { tostring(lat), &amp;quot;N&amp;quot;, tostring(lon), &amp;quot;E&amp;quot; }&lt;br /&gt;
	if globe then table.insert(geoParams, &amp;quot;globe:&amp;quot; .. globe) end&lt;br /&gt;
	if typ then table.insert(geoParams, &amp;quot;type:&amp;quot; .. typ) end&lt;br /&gt;
	if region then table.insert(geoParams, &amp;quot;region:&amp;quot; .. region) end&lt;br /&gt;
	if scale then table.insert(geoParams, &amp;quot;scale:&amp;quot; .. scale) end&lt;br /&gt;
&lt;br /&gt;
	local urlParams = {&lt;br /&gt;
		language = &amp;quot;cs&amp;quot;,&lt;br /&gt;
		pagename = pageTitle.prefixedText&lt;br /&gt;
	}&lt;br /&gt;
	if explicitName then urlParams.title = explicitName end&lt;br /&gt;
&lt;br /&gt;
	-- WikiMiniAtlas požaduje parametr &amp;quot;params&amp;quot; úplně na konci (https://github.com/dschwen/wikiminiatlas/issues/35)&lt;br /&gt;
	local geohackUrl = &amp;quot;//geohack.toolforge.org/geohack.php?&amp;quot; .. mw.uri.buildQueryString(urlParams) .. &amp;#039;&amp;amp;params=&amp;#039; .. table.concat(geoParams, &amp;quot;_&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	local latStr = p._dec2dms(lat, rounding, display)&lt;br /&gt;
	local lonStr = p._dec2dms(lon, rounding, display)&lt;br /&gt;
	local sp = &amp;quot; &amp;quot;&lt;br /&gt;
	if display == &amp;quot;table&amp;quot; then&lt;br /&gt;
		local latLen = #string.gsub(string.gsub(args[1], &amp;#039;^-&amp;#039;, &amp;#039;&amp;#039;), &amp;#039;%..*&amp;#039;, &amp;#039;&amp;#039;) - #string.gsub(latStr, &amp;#039;°.*&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
		latStr = string.rep(&amp;#039; &amp;#039;, latLen) .. latStr  -- číslicová mezera&lt;br /&gt;
		local lonLen = #string.gsub(string.gsub(args[2], &amp;#039;^-&amp;#039;, &amp;#039;&amp;#039;), &amp;#039;%..*&amp;#039;, &amp;#039;&amp;#039;) - #string.gsub(lonStr, &amp;#039;°.*&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
		lonStr = string.rep(&amp;#039; &amp;#039;, lonLen) .. lonStr&lt;br /&gt;
		sp = &amp;quot; &amp;quot;  -- úzká mezera&lt;br /&gt;
	end&lt;br /&gt;
	local coordStrTab = {latStr .. sp .. (lat &amp;gt;= 0 and &amp;quot;s.&amp;quot; or &amp;quot;j.&amp;quot;) .. sp .. &amp;quot;š.&amp;quot;,&lt;br /&gt;
		lonStr .. sp .. (lon &amp;gt;= 0 and &amp;quot;v.&amp;quot; or &amp;quot;z.&amp;quot;) .. sp .. &amp;quot;d.&amp;quot;}&lt;br /&gt;
	for i, str in pairs(coordStrTab) do&lt;br /&gt;
		coordStrTab[i] = tostring(mw.html.create(&amp;#039;span&amp;#039;)&lt;br /&gt;
			:attr({style = &amp;quot;white-space:pre&amp;quot;})&lt;br /&gt;
			:wikitext(str)&lt;br /&gt;
			:done())&lt;br /&gt;
	end&lt;br /&gt;
	local coordStr = table.concat(coordStrTab, &amp;quot;,&amp;quot; .. sp)&lt;br /&gt;
&lt;br /&gt;
	local result = {}&lt;br /&gt;
&lt;br /&gt;
	if pageTitle.namespace == 0 then&lt;br /&gt;
		if globe and globe ~= &amp;#039;earth&amp;#039; and globe ~= &amp;#039;moon&amp;#039; and lon &amp;lt; 0 then&lt;br /&gt;
			-- [[mw:Extension:GeoData#Glossary]]&lt;br /&gt;
			-- [[Diskuse k modulu:Souřadnice#Mimozemské objekty]]&lt;br /&gt;
			lon = lon + 360&lt;br /&gt;
		end&lt;br /&gt;
		local coordTagArgs = { isMain and &amp;quot;primary&amp;quot; or &amp;quot;&amp;quot;, tostring(lat), tostring(lon) }&lt;br /&gt;
		if scale then coordTagArgs[&amp;quot;scale&amp;quot;] = scale end&lt;br /&gt;
		if globe then coordTagArgs[&amp;quot;globe&amp;quot;] = globe end&lt;br /&gt;
		if name then coordTagArgs[&amp;quot;name&amp;quot;] = name end&lt;br /&gt;
		if region then coordTagArgs[&amp;quot;region&amp;quot;] = region end&lt;br /&gt;
		if typ then coordTagArgs[&amp;quot;type&amp;quot;] = typ end&lt;br /&gt;
		table.insert(result, frame:callParserFunction(&amp;quot;#coordinates&amp;quot;, coordTagArgs))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if isMain then&lt;br /&gt;
		table.insert(result, &amp;quot;&amp;lt;span&amp;gt;&amp;quot;)&lt;br /&gt;
		table.insert(result, frame:extensionTag(&amp;#039;indicator&amp;#039;, &amp;#039;Souřadnice: [&amp;#039; .. geohackUrl .. &amp;#039; &amp;#039; .. coordStr .. &amp;#039;]&amp;#039;, { name = &amp;#039;coordinates&amp;#039; }))&lt;br /&gt;
		table.insert(result, &amp;quot;&amp;lt;/span&amp;gt;&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if display ~= &amp;quot;top&amp;quot; then&lt;br /&gt;
		local linkResult = {}&lt;br /&gt;
		table.insert(linkResult, &amp;quot;[&amp;quot;)&lt;br /&gt;
		table.insert(linkResult, geohackUrl)&lt;br /&gt;
		table.insert(linkResult, &amp;quot; &amp;quot;)&lt;br /&gt;
		if display == &amp;quot;link&amp;quot; and explicitName then&lt;br /&gt;
			table.insert(linkResult, explicitName)&lt;br /&gt;
		else&lt;br /&gt;
			table.insert(linkResult, coordStr)&lt;br /&gt;
		end&lt;br /&gt;
		table.insert(linkResult, &amp;quot;]&amp;quot;)&lt;br /&gt;
		local attrs = { class = &amp;#039;coordinates&amp;#039; }&lt;br /&gt;
		if explicitName then&lt;br /&gt;
			attrs.id = explicitName -- pozor, je nutné zaručit, že id bude na stránce unikátní&lt;br /&gt;
		end&lt;br /&gt;
		if display == &amp;quot;table&amp;quot; then&lt;br /&gt;
			attrs.class = attrs.class .. &amp;#039; plainlinks&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		table.insert(result, tostring(mw.html.create(&amp;#039;span&amp;#039;)&lt;br /&gt;
			:attr(attrs)&lt;br /&gt;
			:wikitext(table.concat(linkResult))&lt;br /&gt;
			:done()))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return table.concat(result)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.renderCoordinates(frame)&lt;br /&gt;
	local args = getArgs(frame, { removeBlanks = true })&lt;br /&gt;
	return p._renderCoordinates(args, frame)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>wp&gt;Legoktm</name></author>
	</entry>
</feed>