Aller au contenu

Module:Iberpix

Cette page fait l’objet d’une mesure de semi-protection étendue.
Une page de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 7 février 2021 à 17:47 et modifiée en dernier par Noritop (discuter | contributions) (Nouvelle page : local Tools = require('Module:Outils') local Coordinates = require('Module:Coordinates') local wd = require("Module:Wikidata") local url = {} local function coord_converter(valu…). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

 Documentation[créer] [purger]
local Tools = require('Module:Outils')
local Coordinates = require('Module:Coordinates')
local wd = require("Module:Wikidata")
local url = {}


local function coord_converter(value)
	if tonumber(value) then
		return value
	else
		local dms_object = Coordinates._parsedmsstring(value)
		return Coordinates._dms2dec(dms_object)
	end
end

local function coord(args)
	if args.latitude and args.longitude then
		local latitude = coord_converter(args.latitude)
		local longitude = coord_converter(args.longitude)
		return latitude, longitude
	else
		local claim = wd.getClaims({property = 'P625'})
		if claim then
			local coords = wd.formatSnak(claim[1].mainsnak)
			return coords.latitude, coords.longitude
		else
			return 0, 0
		end
	end
end

url.iberpix = function (frame)
	local args = Tools.extractArgs(frame)
	local validArg = function ( ... ) return Tools.validTextArg( args, ... ) end
	
	local latitude, longitude = coord(args)
	local desc = args.desc or 'Visualisation'
	local a = 6378137 -- demi grand axe Terre
	local lat = math.rad(latitude)
	local lon = math.rad(longitude)
	
	zoom = args.zoom or 16
	                 
	local X = lon*a
	local Y = math.log(math.tan(math.pi/4 + lat/2))*a
	
	local header = '[https://www.ign.es/iberpix2/visor/?&x=-589714.00&y=4901758.00'
	local url_coord = '&x=' .. X .. '&y=' .. Y
	url = header .. url_coord .. '&level=' .. zoom .. '&srid=3857&visible=MTN ' .. desc ..'] sur l\'[[Institut géographique national (Espagne)|IGN espagnol]].'
	
	if args['consulté le'] then 
		url = url .. ' <small>(consulté le' .. args['consulté le'] .. ')</small>'
	end
	
	if latitude == 0 and longitude == 0 then -- Pas de coordonnées entrées et pas de coordonnées wikidata
		url = 'Coordonnées manquantes.'
	end
	
	return url
end

return url