<?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%3AMapframe%2Fsimple</id>
	<title>Module:Mapframe/simple - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3AMapframe%2Fsimple"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Mapframe/simple&amp;action=history"/>
	<updated>2026-05-24T07:36:23Z</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:Mapframe/simple&amp;diff=143933&amp;oldid=prev</id>
		<title>imported&gt;PJvanMill: self-revert, apparently the preview wasn&#039;t accurate and sorting is necessary</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Mapframe/simple&amp;diff=143933&amp;oldid=prev"/>
		<updated>2021-02-08T19:07:59Z</updated>

		<summary type="html">&lt;p&gt;self-revert, apparently the preview wasn&amp;#039;t accurate and sorting is necessary&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local Mapframe = require(&amp;#039;Module:Mapframe&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
-- This function was imported from [[Module:Maplink]], should probably be &amp;quot;required&amp;quot; instead&lt;br /&gt;
function parseCoords(coords)&lt;br /&gt;
	local parts = mw.text.split((mw.ustring.match(coords,&amp;#039;[_%.%d]+[NS][_%.%d]+[EW]&amp;#039;) or &amp;#039;&amp;#039;), &amp;#039;_&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	local lat_d = tonumber(parts[1])&lt;br /&gt;
	local lat_m = tonumber(parts[2]) -- nil if coords are in decimal format&lt;br /&gt;
	local lat_s = lat_m and tonumber(parts[3]) -- nil if coords are either in decimal format or degrees and minutes only&lt;br /&gt;
	local lat = lat_d + (lat_m or 0)/60 + (lat_s or 0)/3600&lt;br /&gt;
	if parts[#parts/2] == &amp;#039;S&amp;#039; then&lt;br /&gt;
		lat = lat * -1&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local long_d = tonumber(parts[1+#parts/2])&lt;br /&gt;
	local long_m = tonumber(parts[2+#parts/2]) -- nil if coords are in decimal format&lt;br /&gt;
	local long_s = long_m and tonumber(parts[3+#parts/2]) -- nil if coords are either in decimal format or degrees and minutes only&lt;br /&gt;
	local long = long_d + (long_m or 0)/60 + (long_s or 0)/3600&lt;br /&gt;
	if parts[#parts] == &amp;#039;W&amp;#039; then&lt;br /&gt;
		long = long * -1&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return lat, long&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Entry point for templates&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local parent = frame.getParent(frame)&lt;br /&gt;
	local output = p._main(parent.args)&lt;br /&gt;
	return frame:preprocess(output)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Entry point for modules&lt;br /&gt;
function p._main(_args)&lt;br /&gt;
	local targs = {}&lt;br /&gt;
	local pins = {}&lt;br /&gt;
	local del = _args[&amp;#039;delimiter&amp;#039;] or &amp;#039;&amp;lt;&amp;gt;&amp;#039;&lt;br /&gt;
	local post_title_offset = _args[&amp;#039;has_jurisdiction_metadata&amp;#039;] and 1 or 0&lt;br /&gt;
	local jurisdiction_filter = _args[&amp;#039;jurisdiction_filter&amp;#039;]&lt;br /&gt;
	for k,v in pairs(_args) do&lt;br /&gt;
		if k then&lt;br /&gt;
			k = tostring(k)&lt;br /&gt;
			if k:match(&amp;#039;^%s*%d+%s*$&amp;#039;) then&lt;br /&gt;
				local vals = mw.text.split(v, &amp;#039;%s*&amp;#039; .. del .. &amp;#039;%s*&amp;#039;)&lt;br /&gt;
				local title = vals[1					] or &amp;#039;&amp;#039;&lt;br /&gt;
				local coord = vals[2 + post_title_offset] or &amp;#039;&amp;#039;&lt;br /&gt;
				local mtype = vals[3 + post_title_offset] or _args[&amp;#039;type&amp;#039;] or &amp;#039;point&amp;#039;&lt;br /&gt;
				local markr = vals[4 + post_title_offset] or _args[&amp;#039;marker&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
				local msize = vals[5 + post_title_offset] or _args[&amp;#039;marker-size&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
				local mcolr = vals[6 + post_title_offset] or _args[&amp;#039;marker-color&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
				local lat,lon = parseCoords(coord)&lt;br /&gt;
				lat,lon = tonumber(lat),tonumber(lon)&lt;br /&gt;
				if jurisdiction_filter then&lt;br /&gt;
					local jurisdiction = vals[2]&lt;br /&gt;
					if mw.ustring.match(jurisdiction, jurisdiction_filter, 1) then&lt;br /&gt;
						table.insert(pins, {lat or 90, lon or -180, title, coord, mtype, markr, msize, mcolr})&lt;br /&gt;
					end&lt;br /&gt;
				else&lt;br /&gt;
					table.insert(pins, {lat or 90, lon or -180, title, coord, mtype, markr, msize, mcolr})&lt;br /&gt;
				end&lt;br /&gt;
			elseif k == &amp;#039;delimiter&amp;#039; or k == &amp;#039;type&amp;#039; or k == &amp;#039;marker&amp;#039; &lt;br /&gt;
				or k == &amp;#039;marker-size&amp;#039; or k == &amp;#039;marker-color&amp;#039; or k:match(&amp;#039;%d%s$&amp;#039;) then&lt;br /&gt;
			else&lt;br /&gt;
				targs[k] = v&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	table.sort(pins, function (a, b) &lt;br /&gt;
			return a[1] &amp;gt; b[1] or (a[1] == b[1] and a[2] &amp;lt; b[2])&lt;br /&gt;
			end)&lt;br /&gt;
	for k,v in ipairs(pins) do&lt;br /&gt;
		if k == 1 then k = &amp;#039;&amp;#039; end&lt;br /&gt;
		targs[&amp;#039;title&amp;#039; .. k] = v[3] ~= &amp;#039;&amp;#039; and v[3]&lt;br /&gt;
		targs[&amp;#039;coord&amp;#039; .. k] = v[4] ~= &amp;#039;&amp;#039; and v[4]&lt;br /&gt;
		targs[&amp;#039;type&amp;#039; .. k] = v[5] ~= &amp;#039;&amp;#039; and v[5]&lt;br /&gt;
		targs[&amp;#039;marker&amp;#039; .. k] = v[6] ~= &amp;#039;&amp;#039; and v[6]&lt;br /&gt;
		targs[&amp;#039;marker-size&amp;#039; .. k] = v[7] ~= &amp;#039;&amp;#039; and v[7]&lt;br /&gt;
		targs[&amp;#039;marker-color&amp;#039; .. k] = v[8] ~= &amp;#039;&amp;#039; and v[8]&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return Mapframe._main(targs)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;PJvanMill</name></author>
	</entry>
</feed>