<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki.aknotl.fr/index.php?action=history&amp;feed=atom&amp;title=Module%3ACarte_interactive</id>
	<title>Module:Carte interactive - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.aknotl.fr/index.php?action=history&amp;feed=atom&amp;title=Module%3ACarte_interactive"/>
	<link rel="alternate" type="text/html" href="https://wiki.aknotl.fr/index.php?title=Module:Carte_interactive&amp;action=history"/>
	<updated>2026-08-10T06:13:07Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://wiki.aknotl.fr/index.php?title=Module:Carte_interactive&amp;diff=695&amp;oldid=prev</id>
		<title>Theau 2 : 1 version importée</title>
		<link rel="alternate" type="text/html" href="https://wiki.aknotl.fr/index.php?title=Module:Carte_interactive&amp;diff=695&amp;oldid=prev"/>
		<updated>2021-07-24T18:29:44Z</updated>

		<summary type="html">&lt;p&gt;1 version importée&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&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;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 24 juillet 2021 à 18:29&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;fr&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(Aucune différence)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key wiki_aknotl:diff:1.41:old-694:rev-695 --&gt;
&lt;/table&gt;</summary>
		<author><name>Theau 2</name></author>
	</entry>
	<entry>
		<id>https://wiki.aknotl.fr/index.php?title=Module:Carte_interactive&amp;diff=694&amp;oldid=prev</id>
		<title>Infobox&gt;The RedBurn : corrigé en amont (et ne fonctionnait pas car c&#039;était une chaîne de caractère &quot;lat et lat&quot;)</title>
		<link rel="alternate" type="text/html" href="https://wiki.aknotl.fr/index.php?title=Module:Carte_interactive&amp;diff=694&amp;oldid=prev"/>
		<updated>2020-09-03T12:25:57Z</updated>

		<summary type="html">&lt;p&gt;corrigé en amont (et ne fonctionnait pas car c&amp;#039;était une chaîne de caractère &amp;quot;lat et lat&amp;quot;)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
local coord = require( &amp;quot;Module:Coordinates&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
local function normalise(args)&lt;br /&gt;
	local lookup_table = {&lt;br /&gt;
		[&amp;#039;largeur&amp;#039;] = &amp;#039;width&amp;#039;,&lt;br /&gt;
		[&amp;#039;hauteur&amp;#039;] = &amp;#039;height&amp;#039;,&lt;br /&gt;
		[&amp;#039;texte&amp;#039;] = &amp;#039;text&amp;#039;,&lt;br /&gt;
		[&amp;#039;legende&amp;#039;] = &amp;#039;text&amp;#039;,&lt;br /&gt;
		[&amp;#039;légende&amp;#039;] = &amp;#039;text&amp;#039;,&lt;br /&gt;
		[&amp;#039;déscription&amp;#039;] = &amp;#039;description&amp;#039;,&lt;br /&gt;
		[&amp;#039;titre&amp;#039;] = &amp;#039;title&amp;#039;,&lt;br /&gt;
		[&amp;#039;sans_cadre&amp;#039;] = &amp;#039;frameless&amp;#039;,&lt;br /&gt;
		[&amp;#039;symbole&amp;#039;] = &amp;#039;symbol&amp;#039;,&lt;br /&gt;
		[&amp;#039;couleur&amp;#039;] = &amp;#039;color&amp;#039;,&lt;br /&gt;
		[&amp;#039;taille&amp;#039;] = &amp;#039;size&amp;#039;,&lt;br /&gt;
		[&amp;#039;epaisseur&amp;#039;] = &amp;#039;size&amp;#039;,&lt;br /&gt;
		[&amp;#039;épaisseur&amp;#039;] = &amp;#039;size&amp;#039;,&lt;br /&gt;
		[&amp;#039;opacite&amp;#039;] = &amp;#039;opacity&amp;#039;,&lt;br /&gt;
		[&amp;#039;opacité&amp;#039;] = &amp;#039;opacity&amp;#039;,&lt;br /&gt;
		[&amp;#039;epaisseur contour&amp;#039;] = &amp;#039;size&amp;#039;,&lt;br /&gt;
		[&amp;#039;épaisseur contour&amp;#039;] = &amp;#039;size&amp;#039;,&lt;br /&gt;
		[&amp;#039;couleur contour&amp;#039;] = &amp;#039;color&amp;#039;,&lt;br /&gt;
		[&amp;#039;opacite contour&amp;#039;] = &amp;#039;opacity&amp;#039;,&lt;br /&gt;
		[&amp;#039;opacité contour&amp;#039;] = &amp;#039;opacity&amp;#039;,&lt;br /&gt;
		[&amp;#039;couleur fond&amp;#039;] = &amp;#039;fill_color&amp;#039;,&lt;br /&gt;
		[&amp;#039;opacite fond&amp;#039;] = &amp;#039;fill_opacity&amp;#039;,&lt;br /&gt;
		[&amp;#039;opacité fond&amp;#039;] = &amp;#039;fill_opacity&amp;#039;,&lt;br /&gt;
		[&amp;#039;geoline&amp;#039;] = &amp;#039;contour&amp;#039;,&lt;br /&gt;
		[&amp;#039;requête&amp;#039;] = &amp;#039;query&amp;#039;,&lt;br /&gt;
		[&amp;#039;requete&amp;#039;] = &amp;#039;query&amp;#039;,&lt;br /&gt;
		[&amp;#039;request&amp;#039;] = &amp;#039;query&amp;#039;,&lt;br /&gt;
		[&amp;#039;langue&amp;#039;] = &amp;#039;lang&amp;#039;,&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	for k, v in pairs(lookup_table) do&lt;br /&gt;
		if args[k] ~= nil then&lt;br /&gt;
			args[v] = args[k]&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return args&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function decodeJsonList(value)&lt;br /&gt;
	--[[ Plusieurs modèles, dont {{Carte interactive/Marqueur}}, ajoutent des&lt;br /&gt;
	virgules à la fin des représentations JSON des objets. Cela fonctionne avec&lt;br /&gt;
	le parsing JSON relaxé de HHVM, mais pas PHP7. Ce bug est détaillé ici:&lt;br /&gt;
		https://phabricator.wikimedia.org/T214984&lt;br /&gt;
	Cette fonction retire donc les virgules finales et initiales, avant&lt;br /&gt;
	d&amp;#039;appeler mw.text.jsonDecode sur la liste.&lt;br /&gt;
	]]&lt;br /&gt;
	local trimmedValue = mw.text.trim(value, &amp;#039;,&amp;#039;)&lt;br /&gt;
	return mw.text.jsonDecode(&amp;#039;[&amp;#039; .. trimmedValue .. &amp;#039;]&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.marker(frame)&lt;br /&gt;
	local args = normalise(frame:getParent().args)&lt;br /&gt;
	&lt;br /&gt;
	if args[1] == nil and args.latlng == nil then --One coordinate is mandatory&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local properties = {&lt;br /&gt;
		[&amp;#039;marker-color&amp;#039;] = args.color == nil and &amp;#039;#555555&amp;#039; or args.color,&lt;br /&gt;
		[&amp;#039;marker-size&amp;#039;] = args.size == nil and &amp;#039;medium&amp;#039; or args.size,&lt;br /&gt;
		[&amp;#039;marker-symbol&amp;#039;] = args.symbol == nil and &amp;#039;&amp;#039; or args.symbol,&lt;br /&gt;
		[&amp;#039;title&amp;#039;] = args.title == nil and &amp;#039;&amp;#039; or args.title,&lt;br /&gt;
		[&amp;#039;description&amp;#039;] = args.description == nil and &amp;#039;&amp;#039; or args.description,&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local latlng = mw.text.split( (args[1] == nil and args.latlng or args[1]), &amp;quot;,&amp;quot;, true )&lt;br /&gt;
	&lt;br /&gt;
	if args.randomise ~= nil then&lt;br /&gt;
		latlng[1] = latlng[1] + math.random(-tonumber(args.randomise), tonumber(args.randomise))/100000&lt;br /&gt;
		latlng[2] = latlng[2] + math.random(-tonumber(args.randomise), tonumber(args.randomise))/100000&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local geojson = {&lt;br /&gt;
            type = &amp;quot;Feature&amp;quot;,&lt;br /&gt;
            properties = properties,&lt;br /&gt;
            geometry = {&lt;br /&gt;
                type = &amp;quot;Point&amp;quot;,&lt;br /&gt;
                coordinates = {&lt;br /&gt;
                	tonumber(latlng[2]), &lt;br /&gt;
                	tonumber(latlng[1]),&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    return mw.text.jsonEncode(geojson) .. &amp;#039;,&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.line(frame)&lt;br /&gt;
	local args = normalise(frame:getParent().args)&lt;br /&gt;
	&lt;br /&gt;
	if args[2] == nil then --At least two coordinates are mandatory&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local properties = {&lt;br /&gt;
		[&amp;quot;stroke&amp;quot;] = args.color == nil and &amp;#039;#555555&amp;#039; or args.color,&lt;br /&gt;
		[&amp;quot;stroke-width&amp;quot;] = args.size == nil and 2 or tonumber(args.size),&lt;br /&gt;
		[&amp;quot;stroke-opacity&amp;quot;] = args.opacity == nil and 1 or tonumber(args.opacity),&lt;br /&gt;
		[&amp;#039;title&amp;#039;] = args.title == nil and &amp;#039;&amp;#039; or args.title,&lt;br /&gt;
		[&amp;#039;description&amp;#039;] = args.description == nil and &amp;#039;&amp;#039; or args.description,&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local coordinates = {}&lt;br /&gt;
	local i = 1&lt;br /&gt;
	while args[i] ~= nil do&lt;br /&gt;
		local latlng = mw.text.split( args[i], &amp;quot;,&amp;quot;, true )&lt;br /&gt;
		coordinates[i] = {&lt;br /&gt;
        	tonumber(latlng[2]), &lt;br /&gt;
        	tonumber(latlng[1]),&lt;br /&gt;
        }&lt;br /&gt;
		i = i+1&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local geojson = {&lt;br /&gt;
            type = &amp;quot;Feature&amp;quot;,&lt;br /&gt;
            properties = properties,&lt;br /&gt;
            geometry = {&lt;br /&gt;
                type = &amp;quot;LineString&amp;quot;,&lt;br /&gt;
                coordinates = coordinates&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    return mw.text.jsonEncode(geojson) .. &amp;#039;,&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.polygon(frame)&lt;br /&gt;
	local args = normalise(frame:getParent().args)&lt;br /&gt;
	&lt;br /&gt;
	if args[3] == nil then --At least three coordinates are mandatory&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local properties = {&lt;br /&gt;
		[&amp;quot;stroke&amp;quot;] = args.color == nil and &amp;#039;#555555&amp;#039; or args.color,&lt;br /&gt;
		[&amp;quot;stroke-width&amp;quot;] = args.size == nil and 2 or tonumber(args.size),&lt;br /&gt;
		[&amp;quot;stroke-opacity&amp;quot;] = args.opacity == nil and 1 or tonumber(args.opacity),&lt;br /&gt;
		[&amp;quot;fill&amp;quot;] = args.fill_color == nil and &amp;#039;#555555&amp;#039; or args.fill_color,&lt;br /&gt;
		[&amp;quot;fill-opacity&amp;quot;] = args.fill_opacity == nil and 0.3 or tonumber(args.fill_opacity),&lt;br /&gt;
		[&amp;#039;title&amp;#039;] = args.title == nil and &amp;#039;&amp;#039; or args.title,&lt;br /&gt;
		[&amp;#039;description&amp;#039;] = args.description == nil and &amp;#039;&amp;#039; or args.description,&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local coordinates = {}&lt;br /&gt;
	local i = 1&lt;br /&gt;
	while args[i] ~= nil do&lt;br /&gt;
		local latlng = mw.text.split( args[i], &amp;quot;,&amp;quot;, true )&lt;br /&gt;
		coordinates[i] = {&lt;br /&gt;
        	tonumber(latlng[2]), &lt;br /&gt;
        	tonumber(latlng[1]),&lt;br /&gt;
        }&lt;br /&gt;
		i = i+1&lt;br /&gt;
	end&lt;br /&gt;
	local latlng = mw.text.split( args[1], &amp;quot;,&amp;quot;, true )&lt;br /&gt;
	coordinates[i] = {&lt;br /&gt;
    	tonumber(latlng[2]), &lt;br /&gt;
    	tonumber(latlng[1]),&lt;br /&gt;
    }&lt;br /&gt;
	&lt;br /&gt;
	local geojson = {&lt;br /&gt;
            type = &amp;quot;Feature&amp;quot;,&lt;br /&gt;
            properties = properties,&lt;br /&gt;
            geometry = {&lt;br /&gt;
                type = &amp;quot;Polygon&amp;quot;,&lt;br /&gt;
                coordinates = { coordinates }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    return mw.text.jsonEncode(geojson) .. &amp;#039;,&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.query(frame)&lt;br /&gt;
	local args = normalise(frame:getParent().args)&lt;br /&gt;
	&lt;br /&gt;
	local query&lt;br /&gt;
	if args[1] ~= nil then&lt;br /&gt;
		query = args[1]&lt;br /&gt;
	else&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local properties = {&lt;br /&gt;
		[&amp;quot;stroke&amp;quot;] = args.color == nil and &amp;#039;#555555&amp;#039; or args.color,&lt;br /&gt;
		[&amp;quot;stroke-width&amp;quot;] = args.size == nil and 2 or tonumber(args.size),&lt;br /&gt;
		[&amp;quot;stroke-opacity&amp;quot;] = args.opacity == nil and 1 or tonumber(args.opacity),&lt;br /&gt;
		[&amp;quot;fill&amp;quot;] = args.fill_color == nil and &amp;#039;#555555&amp;#039; or args.fill_color,&lt;br /&gt;
		[&amp;quot;fill-opacity&amp;quot;] = args.fill_opacity == nil and 0.3 or tonumber(args.fill_opacity),&lt;br /&gt;
		[&amp;#039;title&amp;#039;] = args.title == nil and &amp;#039;&amp;#039; or args.title,&lt;br /&gt;
		[&amp;#039;description&amp;#039;] = args.description == nil and &amp;#039;&amp;#039; or args.description,&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local service = &amp;quot;geoshape&amp;quot;&lt;br /&gt;
	if args.contour ~= nil then&lt;br /&gt;
		service = &amp;quot;geoline&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local geojson = {&lt;br /&gt;
		type = &amp;quot;ExternalData&amp;quot;,&lt;br /&gt;
		service = service,&lt;br /&gt;
		query = query,&lt;br /&gt;
		properties = properties,&lt;br /&gt;
	}&lt;br /&gt;
    return mw.text.jsonEncode(geojson) .. &amp;#039;,&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.osm(frame)&lt;br /&gt;
	local args = normalise(frame:getParent().args)&lt;br /&gt;
	&lt;br /&gt;
	local qid&lt;br /&gt;
	if args[1] == nil then&lt;br /&gt;
		qid = mw.wikibase.getEntityIdForCurrentPage()&lt;br /&gt;
	else&lt;br /&gt;
		qid = mw.text.trim(args[1])&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local properties = {&lt;br /&gt;
		[&amp;quot;stroke&amp;quot;] = args.color == nil and &amp;#039;#555555&amp;#039; or args.color,&lt;br /&gt;
		[&amp;quot;stroke-width&amp;quot;] = args.size == nil and 2 or tonumber(args.size),&lt;br /&gt;
		[&amp;quot;stroke-opacity&amp;quot;] = args.opacity == nil and 1 or tonumber(args.opacity),&lt;br /&gt;
		[&amp;quot;fill&amp;quot;] = args.fill_color == nil and &amp;#039;#555555&amp;#039; or args.fill_color,&lt;br /&gt;
		[&amp;quot;fill-opacity&amp;quot;] = args.fill_opacity == nil and 0.3 or tonumber(args.fill_opacity),&lt;br /&gt;
		[&amp;#039;title&amp;#039;] = args.title == nil and &amp;#039;&amp;#039; or args.title,&lt;br /&gt;
		[&amp;#039;description&amp;#039;] = args.description == nil and &amp;#039;&amp;#039; or args.description,&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local service = &amp;quot;geoshape&amp;quot;&lt;br /&gt;
	if args.contour ~= nil then&lt;br /&gt;
		service = &amp;quot;geoline&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local geojson = {&lt;br /&gt;
		type = &amp;quot;ExternalData&amp;quot;,&lt;br /&gt;
		service = service,&lt;br /&gt;
		ids = qid,&lt;br /&gt;
		properties = properties,&lt;br /&gt;
	}&lt;br /&gt;
    return mw.text.jsonEncode(geojson) .. &amp;#039;,&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.commons(frame)&lt;br /&gt;
	local args = normalise(frame:getParent().args)&lt;br /&gt;
	&lt;br /&gt;
	if args[1] == nil then&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local page_name = args[1]&lt;br /&gt;
	if mw.ustring.find(page_name, &amp;quot;Data:&amp;quot;, 1, true) == 1 then&lt;br /&gt;
		page_name = string.sub(page_name, 6)&lt;br /&gt;
	end&lt;br /&gt;
	if mw.ustring.find(page_name, &amp;quot;.map&amp;quot;, -4, true) == nil then&lt;br /&gt;
		page_name = page_name .. &amp;#039;.map&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local geojson = {&lt;br /&gt;
		type = &amp;quot;ExternalData&amp;quot;,&lt;br /&gt;
		service = &amp;quot;page&amp;quot;,&lt;br /&gt;
		title = page_name&lt;br /&gt;
	}&lt;br /&gt;
    return mw.text.jsonEncode(geojson) .. &amp;#039;,&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.wikidata(frame)&lt;br /&gt;
	local args = normalise(frame:getParent().args)&lt;br /&gt;
	local qid&lt;br /&gt;
	&lt;br /&gt;
	local properties = {&lt;br /&gt;
		[&amp;#039;marker-color&amp;#039;] = args.color == nil and &amp;#039;#555555&amp;#039; or args.color,&lt;br /&gt;
		[&amp;#039;marker-size&amp;#039;] = args.size == nil and &amp;#039;medium&amp;#039; or args.size,&lt;br /&gt;
		[&amp;#039;marker-symbol&amp;#039;] = args.symbol == nil and &amp;#039;&amp;#039; or args.symbol,&lt;br /&gt;
		[&amp;#039;title&amp;#039;] = args.title == nil and &amp;#039;&amp;#039; or args.title,&lt;br /&gt;
		[&amp;#039;description&amp;#039;] = args.description == nil and &amp;#039;&amp;#039; or args.description,&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if args[1] == nil then&lt;br /&gt;
		qid = mw.wikibase.getEntityIdForCurrentPage()&lt;br /&gt;
	else&lt;br /&gt;
		qid = args[1]&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local entity = mw.wikibase.getEntity( qid )&lt;br /&gt;
	local value = entity:formatPropertyValues( &amp;#039;P625&amp;#039;, { mw.wikibase.entity.claimRanks.RANK_NORMAL, mw.wikibase.entity.claimRanks.RANK_PREFERRED, mw.wikibase.entity.claimRanks.RANK_TRUTH } ).value&lt;br /&gt;
	if value == nil then&lt;br /&gt;
		error(&amp;#039;La propriété P625 &amp;quot;coordonnées géographiques&amp;quot; n\&amp;#039;est pas renseigné sur Wikidata&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	latlng = mw.text.split( mw.text.decode(value), &amp;quot;, &amp;quot;, true )&lt;br /&gt;
	geojson = {&lt;br /&gt;
		type = &amp;quot;Feature&amp;quot;,&lt;br /&gt;
		geometry = {&lt;br /&gt;
			type = &amp;quot;Point&amp;quot;,&lt;br /&gt;
			coordinates = {&lt;br /&gt;
				coord._dms2dec(coord._parsedmsstring(latlng[2])), &lt;br /&gt;
				coord._dms2dec(coord._parsedmsstring(latlng[1]))&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		properties = properties&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	return mw.text.jsonEncode(geojson) .. &amp;#039;,&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.tag(frame)&lt;br /&gt;
    local args = ( frame.getParent and normalise(frame:getParent().args) ) or frame&lt;br /&gt;
	&lt;br /&gt;
	-- Choose the tagname&lt;br /&gt;
	local tagname = &amp;#039;mapframe&amp;#039;&lt;br /&gt;
	if args.lien ~= nil then&lt;br /&gt;
		tagname = &amp;#039;maplink&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Manage the basics tag params&lt;br /&gt;
	local tagArgs = {&lt;br /&gt;
		zoom = args.zoom == nil and args.commons == nil and 14 or tonumber(args.zoom),&lt;br /&gt;
		height = args.height == nil and 420 or tonumber(args.height),&lt;br /&gt;
		width = args.width == nil and 420 or tonumber(args.width),&lt;br /&gt;
		align = args.align == nil and &amp;#039;right&amp;#039; or args.align,&lt;br /&gt;
		text = args.text,&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if args[1] ~= nil and (args.latitude ~= nil or args.longitude ~= nil) then&lt;br /&gt;
		error(&amp;#039;La ou les valeurs de longitude et/ou de latitude ont été fournis via deux syntaxe différentes. Consultez la documentation du [[Modèle:Carte interactive]] pour obtenir une syntaxe correcte&amp;#039;)&lt;br /&gt;
	elseif args.latitude ~= nil and args.latitude ~= &amp;#039;&amp;#039;&lt;br /&gt;
	and args.longitude ~= nil and args.longitude ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		tagArgs.latitude = args.latitude&lt;br /&gt;
		tagArgs.longitude = args.longitude&lt;br /&gt;
	elseif args[1] ~= nil and args[2] ~= nil then&lt;br /&gt;
		tagArgs.latitude = args[1]&lt;br /&gt;
		tagArgs.longitude = args[2]&lt;br /&gt;
	elseif args.commons == nil and args.wikidata == nil&lt;br /&gt;
	and args.formes == nil and args.query == nil and args.externes == nil then --The only exceptions allowed to put latitude and longitude away are when using an external map stored on commons, coord from wikidata, formes, query or externes&lt;br /&gt;
		error(&amp;#039;Les paramètres de latitude et/ou de longitude sont absent&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if tagArgs.latitude ~= nil and tagArgs.longitude ~= nil then&lt;br /&gt;
		if tonumber(tagArgs.latitude) then&lt;br /&gt;
			tagArgs.latitude = tonumber(tagArgs.latitude)&lt;br /&gt;
		else&lt;br /&gt;
			tagArgs.latitude = coord._dms2dec(coord._parsedmsstring(tagArgs.latitude))&lt;br /&gt;
		end&lt;br /&gt;
		if tonumber(tagArgs.longitude) then&lt;br /&gt;
			tagArgs.longitude = tonumber(tagArgs.longitude)&lt;br /&gt;
		else&lt;br /&gt;
			tagArgs.longitude = coord._dms2dec(coord._parsedmsstring(tagArgs.longitude))&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if args.frameless then&lt;br /&gt;
		tagArgs.frameless = &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if args.lang ~= nil then&lt;br /&gt;
		tagArgs.lang = args.lang&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Manage the basics GeoJSON params&lt;br /&gt;
	local geojson = {}&lt;br /&gt;
	&lt;br /&gt;
	if args.commons ~= nil then&lt;br /&gt;
		geojson[#geojson+1] = {&lt;br /&gt;
			type = &amp;quot;ExternalData&amp;quot;,&lt;br /&gt;
			service = &amp;quot;page&amp;quot;,&lt;br /&gt;
			title = args.commons,&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if args.marqueur ~= nil and args.marqueur ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		geojson[#geojson+1] = {&lt;br /&gt;
			type = &amp;quot;Feature&amp;quot;,&lt;br /&gt;
			geometry = {&lt;br /&gt;
				type = &amp;quot;Point&amp;quot;,&lt;br /&gt;
				coordinates = {&lt;br /&gt;
					tagArgs.longitude, &lt;br /&gt;
					tagArgs.latitude&lt;br /&gt;
				}&lt;br /&gt;
			},&lt;br /&gt;
			properties = {&lt;br /&gt;
				[&amp;#039;marker-color&amp;#039;] = (args.color == nil or args.color == &amp;#039;&amp;#039;) and &amp;#039;#555555&amp;#039; or args.color,&lt;br /&gt;
	 			[&amp;#039;marker-size&amp;#039;] = (args.size == nil or args.size == &amp;#039;&amp;#039;) and &amp;#039;medium&amp;#039; or args.size,&lt;br /&gt;
				[&amp;#039;marker-symbol&amp;#039;] = args.symbol == nil and &amp;#039;&amp;#039; or args.symbol,&lt;br /&gt;
				[&amp;#039;title&amp;#039;] = args.title == nil and &amp;#039;&amp;#039; or args.title,&lt;br /&gt;
				[&amp;#039;description&amp;#039;] = args.description == nil and &amp;#039;&amp;#039; or args.description,&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if args.osm ~= nil and args.osm ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		local qid&lt;br /&gt;
		if args.osm == &amp;#039;oui&amp;#039; then&lt;br /&gt;
			qid = mw.wikibase.getEntityIdForCurrentPage()&lt;br /&gt;
			if qid == nil then&lt;br /&gt;
				qid = &amp;quot;Q1&amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			qid = args.osm&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		local service = &amp;quot;geoshape&amp;quot;&lt;br /&gt;
		if args.contour ~= nil then&lt;br /&gt;
			service = &amp;quot;geoline&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		geojson[#geojson+1] = {&lt;br /&gt;
			type = &amp;quot;ExternalData&amp;quot;,&lt;br /&gt;
			service = service,&lt;br /&gt;
			ids = qid,&lt;br /&gt;
			properties = {&lt;br /&gt;
				title = args.title == nil and &amp;#039;&amp;#039; or args.title,&lt;br /&gt;
				description = args.description == nil and &amp;#039;&amp;#039; or args.description,&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local qid = args.wikidata&lt;br /&gt;
	if qid and not mw.wikibase.isValidEntityId( qid ) then&lt;br /&gt;
		qid = mw.wikibase.getEntityIdForCurrentPage()&lt;br /&gt;
	end&lt;br /&gt;
	if qid and mw.wikibase.isValidEntityId( qid ) then&lt;br /&gt;
		local entity = mw.wikibase.getEntity( qid )&lt;br /&gt;
		local value = entity:formatPropertyValues( &amp;#039;P625&amp;#039;, { mw.wikibase.entity.claimRanks.RANK_NORMAL, mw.wikibase.entity.claimRanks.RANK_PREFERRED, mw.wikibase.entity.claimRanks.RANK_TRUTH } ).value&lt;br /&gt;
		if value == &amp;#039;&amp;#039; then&lt;br /&gt;
			error(&amp;#039;La propriété P625 &amp;quot;coordonnées géographiques&amp;quot; n\&amp;#039;est pas renseigné sur Wikidata&amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
		latlng = mw.text.split( mw.text.decode(value), &amp;quot;, &amp;quot;, true )&lt;br /&gt;
		geojson[#geojson+1] = {&lt;br /&gt;
			type = &amp;quot;Feature&amp;quot;,&lt;br /&gt;
			geometry = {&lt;br /&gt;
				type = &amp;quot;Point&amp;quot;,&lt;br /&gt;
				coordinates = {&lt;br /&gt;
					coord._dms2dec(coord._parsedmsstring(latlng[2])), &lt;br /&gt;
					coord._dms2dec(coord._parsedmsstring(latlng[1]))&lt;br /&gt;
				}&lt;br /&gt;
			},&lt;br /&gt;
			properties = {&lt;br /&gt;
				title = args.title == nil and &amp;#039;&amp;#039; or args.title,&lt;br /&gt;
				description = args.description == nil and &amp;#039;&amp;#039; or args.description,&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if args.query ~= nil then&lt;br /&gt;
		local service = &amp;quot;geoshape&amp;quot;&lt;br /&gt;
		if args.contour ~= nil then&lt;br /&gt;
			service = &amp;quot;geoline&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		geojson[#geojson+1] = {&lt;br /&gt;
			type = &amp;quot;ExternalData&amp;quot;,&lt;br /&gt;
			service = service,&lt;br /&gt;
			query = args.query,&lt;br /&gt;
			properties = {&lt;br /&gt;
				title = args.title == nil and &amp;#039;&amp;#039; or args.title,&lt;br /&gt;
				description = args.description == nil and &amp;#039;&amp;#039; or args.description,&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	--Manage external GeoJSON datas included through models&lt;br /&gt;
	if args.formes ~= nil then&lt;br /&gt;
		geojson[#geojson+1] = {&lt;br /&gt;
			type = &amp;quot;FeatureCollection&amp;quot;,&lt;br /&gt;
			features = decodeJsonList(args.formes)&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if args.externes ~= nil and args.externes ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		local externes = decodeJsonList(args.externes)&lt;br /&gt;
		for k, externe in pairs(externes) do&lt;br /&gt;
			geojson[#geojson+1] = externe&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return frame:extensionTag(tagname, mw.text.jsonEncode(geojson), tagArgs)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Infobox&gt;The RedBurn</name></author>
	</entry>
</feed>