<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ASandbox%2Fautoscale</id>
	<title>Module:Sandbox/autoscale - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ASandbox%2Fautoscale"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/autoscale&amp;action=history"/>
	<updated>2026-04-21T22:00:16Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://stockhub.co/index.php?title=Module:Sandbox/autoscale&amp;diff=146480&amp;oldid=prev</id>
		<title>imported&gt;Snævar: closetag</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/autoscale&amp;diff=146480&amp;oldid=prev"/>
		<updated>2022-03-09T11:31:08Z</updated>

		<summary type="html">&lt;p&gt;closetag&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;p = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	if frame.args.item == nil then&lt;br /&gt;
		return &amp;quot;no item given&amp;quot;&lt;br /&gt;
	elseif mw.wikibase.entityExists(frame.args.item) == nil then&lt;br /&gt;
		return &amp;quot;not a valid item&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local coordtable = {}&lt;br /&gt;
	local usecoordy = nil&lt;br /&gt;
	local usecoordx = nil&lt;br /&gt;
	local cminy = nil&lt;br /&gt;
	local cmaxy = nil&lt;br /&gt;
	local closetag = nil&lt;br /&gt;
	local i = 0&lt;br /&gt;
	-- if far east, west, north, south&lt;br /&gt;
	if mw.wikibase.getBestStatements(frame.args.item, &amp;quot;P1334&amp;quot;)[1] and mw.wikibase.getBestStatements(frame.args.item, &amp;quot;P1334&amp;quot;)[1].mainsnak.datavalue and&lt;br /&gt;
	mw.wikibase.getBestStatements(frame.args.item, &amp;quot;P1335&amp;quot;)[1] and mw.wikibase.getBestStatements(frame.args.item, &amp;quot;P1335&amp;quot;)[1].mainsnak.datavalue and&lt;br /&gt;
	mw.wikibase.getBestStatements(frame.args.item, &amp;quot;P1332&amp;quot;)[1] and mw.wikibase.getBestStatements(frame.args.item, &amp;quot;P1332&amp;quot;)[1].mainsnak.datavalue and&lt;br /&gt;
	mw.wikibase.getBestStatements(frame.args.item, &amp;quot;P1333&amp;quot;)[1] and mw.wikibase.getBestStatements(frame.args.item, &amp;quot;P1333&amp;quot;)[1].mainsnak.datavalue then&lt;br /&gt;
		-- getting locations of farthest points in each direction in the area&lt;br /&gt;
		local statementa = mw.wikibase.getBestStatements(frame.args.item, &amp;quot;P1334&amp;quot;)[1].mainsnak&lt;br /&gt;
		table.insert(coordtable, statementa.datavalue.value.longitude)&lt;br /&gt;
	&lt;br /&gt;
		local statementb = mw.wikibase.getBestStatements(frame.args.item, &amp;quot;P1335&amp;quot;)[1].mainsnak&lt;br /&gt;
		table.insert(coordtable, statementb.datavalue.value.longitude)&lt;br /&gt;
	&lt;br /&gt;
		local statementc = mw.wikibase.getBestStatements(frame.args.item, &amp;quot;P1332&amp;quot;)[1].mainsnak&lt;br /&gt;
		table.insert(coordtable, statementc.datavalue.value.latitude)&lt;br /&gt;
	&lt;br /&gt;
		local statementd = mw.wikibase.getBestStatements(frame.args.item, &amp;quot;P1333&amp;quot;)[1].mainsnak&lt;br /&gt;
		table.insert(coordtable, statementd.datavalue.value.latitude)&lt;br /&gt;
	&lt;br /&gt;
		-- figuring out the center position of the map, but also used for zoom levels&lt;br /&gt;
		local cminx = math.min(tonumber(coordtable[1]), tonumber(coordtable[2]))&lt;br /&gt;
		local sizex = math.max(tonumber(coordtable[1]), tonumber(coordtable[2])) - cminx&lt;br /&gt;
		usecoordx = tonumber(cminx + (sizex / 2))&lt;br /&gt;
	&lt;br /&gt;
		cminy = math.min(tonumber(coordtable[3]), tonumber(coordtable[4]))&lt;br /&gt;
		cmaxy = math.max(tonumber(coordtable[3]), tonumber(coordtable[4]))&lt;br /&gt;
		local sizey = cmaxy - cminy&lt;br /&gt;
		usecoordy = tonumber(cminy + (sizey / 2))&lt;br /&gt;
	&lt;br /&gt;
		-- Zoom level: each zoom level is half of the previous zoom level, with the highest being 360 degress (full circle)&lt;br /&gt;
		local x = 360&lt;br /&gt;
		while math.max(sizex, sizey) &amp;lt; x do&lt;br /&gt;
			x = x / 2&lt;br /&gt;
			i = i + 1&lt;br /&gt;
		end&lt;br /&gt;
	-- if either central coordinate or basic coordinate along with instance of&lt;br /&gt;
	elseif mw.wikibase.getBestStatements(frame.args.item, &amp;quot;P31&amp;quot;)[1] and mw.wikibase.getBestStatements(frame.args.item, &amp;quot;P31&amp;quot;)[1].mainsnak.datavalue then&lt;br /&gt;
		if mw.wikibase.getBestStatements(frame.args.item, &amp;quot;P15140&amp;quot;)[1] and mw.wikibase.getBestStatements(frame.args.item, &amp;quot;P15140&amp;quot;)[1].mainsnak.datavalue then&lt;br /&gt;
			local statementa = mw.wikibase.getBestStatements(frame.args.item, &amp;quot;P15140&amp;quot;)[1].mainsnak&lt;br /&gt;
			usecoordx = statementa.datavalue.value.longitude&lt;br /&gt;
			usecoordy = statementa.datavalue.value.latitude&lt;br /&gt;
			cminy = tonumber(usecoordy)&lt;br /&gt;
			cmaxy = tonumber(usecoordy)&lt;br /&gt;
		elseif mw.wikibase.getBestStatements(frame.args.item, &amp;quot;P625&amp;quot;)[1] and mw.wikibase.getBestStatements(frame.args.item, &amp;quot;P625&amp;quot;)[1].mainsnak.datavalue then&lt;br /&gt;
			local statementa = mw.wikibase.getBestStatements(frame.args.item, &amp;quot;P625&amp;quot;)[1].mainsnak&lt;br /&gt;
			usecoordx = statementa.datavalue.value.longitude&lt;br /&gt;
			usecoordy = statementa.datavalue.value.latitude&lt;br /&gt;
			cminy = tonumber(usecoordy)&lt;br /&gt;
			cmaxy = tonumber(usecoordy)&lt;br /&gt;
		end&lt;br /&gt;
		local statementb = mw.wikibase.getBestStatements(frame.args.item, &amp;quot;P31&amp;quot;)[1].mainsnak&lt;br /&gt;
		if statementb.datavalue.value.id == &amp;quot;Q6256&amp;quot; then -- Country&lt;br /&gt;
			i = 3&lt;br /&gt;
		elseif statementb.datavalue.value.id == &amp;quot;Q515&amp;quot; then -- City&lt;br /&gt;
			i = 11&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- northern and southern hemisphere have different scaling, due to the earth being round.&lt;br /&gt;
	-- in other cases the calculated zoom is a bit tight, so easing that up.&lt;br /&gt;
	if cmaxy &amp;gt; 60 or cminy &amp;lt; -30 then&lt;br /&gt;
		i = i - 2&lt;br /&gt;
	else&lt;br /&gt;
		i = i - 1&lt;br /&gt;
	end&lt;br /&gt;
	if frame.args.closetag then&lt;br /&gt;
		closetag = &amp;quot; &amp;gt;&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		closetag = &amp;quot; /&amp;gt;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return frame:preprocess(&amp;quot;&amp;lt;mapframe width=250 height=250 zoom=&amp;quot; .. i .. &amp;quot; longitude=&amp;quot; .. usecoordx .. &amp;quot; latitude=&amp;quot; .. usecoordy .. closetag)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;Snævar</name></author>
	</entry>
</feed>