Module:Infobox/Fonctions/Géolocalisation

Cette page fait l’objet d’une mesure de semi-protection étendue.
Une page de Wikipédia, l'encyclopédie libre.

 Documentation[voir] [modifier] [historique] [purger]

Utilisation

Fonctions exportables

country()

Paramètres de l'infobox
Libellé Paramètres Wikidata Description
Pays pays P17 (« pays ») Affiche le pays.

Exemples :

coordvalue(moduleparams)

Valeurs des coordonnées, sans mise en infoboîte

Paramètre de la fonction
Argument Type Description
moduleparams table liste des éléments mystérieux de cette table (Smiley: triste) :
  • maxdistance usage inconu,
  • wikidataquery usage inconu, si le paramètre est vide P625 (« coordonnées géographiques ») est utilisé à la place.
  • entity usage inconu,
  • displayformat peut être forcé par le paramètre de l'infobox format coordonnées. Voir la desciption de ce paramètre pour plus de détails.
  • displayinline peut être forcé par le paramètre de l'infobox coords en ligne. Usage inconnu,
  • displaytitle peut être forcé par le paramètre de l'infobox coords en titre. Usage inconnu,
  • globe peut être forcé par les paramètres de l'infobox globe et planète. Usage inconnu,
  • latitude peut être forcé par le paramètre de l'infobox latitude. Latitude du point à afficher.
    Le format utilisé est soit en degrés au format décimal (par exemple : 16.74170), soit en degrés, minutes et secondes (par exemple : 16°44'29.88"N ou 16/44/29.88/N)
  • longitude peut être forcé par le paramètre de l'infobox longitude. Longitude du point à afficher.
    Le format utilisé est soit en degrés au format décimal (par exemple : -92.62982), soit en degrés, minutes et secondes (par exemple : 92°37'47.28"O ou 92/37/47.28/O)
  • fallbackquery requête de replis dans le cas où la requête standard ne renvoie rien.
  • ...
Paramètres de l'infobox
Libellé Paramètres Wikidata Description
wikidata Si wikidata est égal à « - » ou « non ». L'utilisation est inconnue.

Exemples :
wikidata = -

format coordonnées Modifie le format d'affichage des coordonnées pour l'un des formats suivants :
  • dms pour un affichage degré/minute/seconde, c'est à priori la valeur par défaut.
  • dms long pour un affichage degré/minute/seconde avec l'orientation en toute lettres,
  • dec pour un affichage décimal en degré

Force la valeur du paramètre de la fonctiondisplayformat.
Exemples : voir Format des coordonnées

coords en ligne L'utilisation est inconnue.
Force la valeur du paramètre de la fonctiondisplayinline.

Exemples :

coords en titre Permet d'afficher les coordonnées sur la droite de la ligne du titre de l'article et le code source mentionne : « par défaut : on met dans les coordonnées de l'infobox principale en titre »
Force la valeur du paramètre de la fonctiondisplaytitle.

Exemples :

globe
planète
L'utilisation complète est inconnue, mais permet d'afficher une autre carte que la Terre.
Force la valeur du paramètre de la fonctionglobe.
Par défaut on utilise notre bonne vielle Terre.

Exemples :

latitude P625 (« coordonnées géographiques ») Latitude à afficher.
Force la valeur du paramètre de la fonctionlatitude.
Le format utilisé est soit en degrés au format décimal (par exemple : 16.74170), soit en degrés, minutes et secondes (par exemple : 16°44'29.88"N ou 16/44/29.88/N).

Exemples :

longitude P625 (« coordonnées géographiques ») Longitude à afficher.
Force la valeur du paramètre de la fonctionlongitude.
Le format utilisé est soit en degrés au format décimal (par exemple : -92.62982), soit en degrés, minutes et secondes (par exemple : 92°37'47.28"O ou 92/37/47.28/O).

Exemples :

référence géolocalisation Dans la documentation du modèle {{Infobox Aire protégée}} on trouve : « référence où l'on a trouvé ces coordonnées géographiques, à mettre entre <ref> </ref> ». Mais, semble-t-il sans utilisation.

Exemples :

coordinates(moduleparams)

Paramètre de la fonction
Argument Type Description
moduleparams table liste des éléments mystérieux de cette table (Smiley: triste).
  • maxdistance usage inconu,
  • wikidataquery usage inconu, si le paramètre est vide P625 (« coordonnées géographiques ») est utilisé à la place.
  • entity usage inconu,
  • displayformat peut être forcé par le paramètre de l'infobox format coordonnées. Voir la desciption de ce paramètre pour plus de détails.
  • displayinline peut être forcé par le paramètre de l'infobox coords en ligne. Usage inconnu,
  • displaytitle peut être forcé par le paramètre de l'infobox coords en titre. Usage inconnu,
  • globe peut être forcé par les paramètres de l'infobox globe et planète. Usage inconnu,
  • latitude peut être forcé par le paramètre de l'infobox latitude. Latitude du point à afficher.
    Le format utilisé est soit en degrés au format décimal (par exemple : 16.74170), soit en degrés, minutes et secondes (par exemple : 16°44'29.88"N ou 16/44/29.88/N)
  • longitude peut être forcé par le paramètre de l'infobox longitude. Longitude du point à afficher.
    Le format utilisé est soit en degrés au format décimal (par exemple : -92.62982), soit en degrés, minutes et secondes (par exemple : 92°37'47.28"O ou 92/37/47.28/O)
  • fallbackquery requête de replis dans le cas où la requête standard ne renvoie rien.
  • ...
Paramètres de l'infobox
Libellé Paramètres Wikidata Description
Coordonnées coordonnées Si coordonnées est égal à « - » ou « non » supprime l'affichage des coordonnées dans l'infobox.

Exemples :
coordonnées = -

format coordonnées

Modifie le format d'affichage des coordonnées pour l'un des formats suivants :

  • dms pour un affichage degré/minute/seconde, c'est à priori la valeur par défaut.
  • dms long pour un affichage degré/minute/seconde avec l'orientation en toute lettres,
  • dec pour un affichage décimal en degré

Force la valeur du paramètre de la fonctiondisplayformat.


Exemples : voir Format des coordonnées

coords en ligne

L'utilisation est inconnue.
Force la valeur du paramètre de la fonctiondisplayinline.


Exemples :

coords en titre

Permet d'afficher les coordonnées sur la droite de la ligne du titre de l'article et le code source mentionne : « par défaut : on met dans les coordonnées de l'infobox principale en titre »
Force la valeur du paramètre de la fonctiondisplaytitle.


Exemples :

globe
planète

L'utilisation complète est inconnue, mais permet d'afficher une autre carte que la Terre.
Force la valeur du paramètre de la fonctionglobe.
Par défaut on utilise notre bonne vielle Terre.


Exemples :

latitude

Latitude à afficher.
Force la valeur du paramètre de la fonctionlatitude.
Le format utilisé est soit en degrés au format décimal (par exemple : 16.74170), soit en degrés, minutes et secondes (par exemple : 16°44'29.88"N ou 16/44/29.88/N).


Exemples :

longitude

Longitude à afficher.
Force la valeur du paramètre de la fonctionlongitude.
Le format utilisé est soit en degrés au format décimal (par exemple : -92.62982), soit en degrés, minutes et secondes (par exemple : 92°37'47.28"O ou 92/37/47.28/O).


Exemples :

référence géolocalisation

Dans la documentation du modèle {{Infobox Aire protégée}} on trouve : « référence où l'on a trouvé ces coordonnées géographiques, à mettre entre <ref> </ref> ». Mais, semble-t-il sans utilisation.


Exemples :

Il existe deux possibilités pour l'affichage d'une carte :

Dans les 2 cas les coordonnées sont définies par P625 (« coordonnées géographiques ») ou les paramètres latitude et longitude.

Icône pour souligner l'importance du texte
Dans le cas où le sujet de l'infobox n'existe plus, il faut vérifier si une carte actuelle est pertinente.
Carte de géolocalisation géolocalisation Non applicable Carte utilisée pour afficher la géolocalisation du siège donnée par les latitude et longitude.

Si géolocalisation=pas pertinent, les coordonnées sont affichées mais la carte ne l'est pas.
Si géolocalisation=- ou géolocalisation=non, ni les coordonnées ni la carte ne sont affichées.
Pour une utilisation standard de ce paramètre les cartes doivent être séparées par un « / ». Par exemple géolocalisation = Monde/Canada/Québec/Montréal. Le nombre de cartes semble être limité à 4 (non testé). Exemples :

Type de carte de géolocalisation type carte
(maptype dans le code Lua)
Non applicable Type de carte de géolocalisation statique, par exemple « relief ».

Exemple : Kandy

Taille de carte de géolocalisation taille carte
(width dans le code Lua)
Non applicable Largeur de la carte de géolocalisation statique, en pixels. La taille par défaut, et maximale, est 280.

Exemple : Kandy

p.geoloc(moduleparams)

Fonctions internes

coordcore(moduleparams, localdata, item)

Modules externes et autres éléments dont ce module a besoin pour fonctionner :

Exemples

local localdata = require( 'Module:Infobox/Localdata' )
local item = localdata.item
local id
if item then
	id = item.id
end
local wd = require "Module:Wikidata"
-- Modules chargés si necessaire :
-- local countrymodule = require "Module:Country data"
-- local coord = require "Module:Coordinates"
local p = {}

function p.country()
	local function formatCountry(country)
		if not country then
			return nil
		end
		local countrymodule = require "Module:Country data"
		local val, success = countrymodule.standarddisplay(country) -- val = nil si country n'est pas reconnu
		if success then
			return val
		end
	end

	return  {
		type = 'mixed',
		label = 'Pays',
		value = function() return formatCountry(localdata['pays']) or localdata['pays'] end,
		wikidata = {
			property = 'P17', 
			conjtype = 'new line', 
			displayformat = function(snak) 
				local id = wd.getId(snak) 
				return formatCountry(id) or wd.formatSnak(snak)
			end
		}
	}
end

function p.coordvalue(moduleparams) -- valeurs des coordonnées, sans mise en infoboîte
	local coord = require "Module:Coordinates"
	if not moduleparams then
		moduleparams = {}
	end

	local function toboolean(val) -- transforme un "-" en false au moment voulu
		if val == '-' or val == 'non' then
			return false
		end
		return true
	end

	-- paramètres Wikidata
	local wikidata = tostring(toboolean(localdata['wikidata'] or true)) -- doit être string dans Module:Coordinates
	local maxdistance = moduleparams.maxdistance
	local wikidataquery = moduleparams.wikidataquery or {property = 'P625'}
	if not wikidataquery.entity then
		wikidataquery.entity = item
	end

	-- paramètres d'affichage
	local displayformat = localdata['format coordonnées'], moduleparams.displayformat
	
	local displayplace = ''
	local displayinline = toboolean(localdata['coords en ligne'] or moduleparams.displayinline or true)
	-- par défaut : on met dans les coordonnées de l'infobox principale en titre
	local displaytitle = localdata['coords en titre']
		or moduleparams.displaytitle
		or (localdata['infoboxrank'] == 'main')
	if displayinline and (displayinline ~= '-') then
		displayplace = displayplace .. 'inline'
	end
	if displaytitle and (displaytitle ~= '-')  then
		displayplace = displayplace .. 'title,'
	end
	
	-- données sur géograhiques
	local globe = localdata['globe'] or localdata['planète'] or moduleparams['globe'] or 'earth'
	local latitude = moduleparams['latitude'] or localdata['latitude']
	local longitude = moduleparams['longitude'] or localdata['longitude']

	local parameterlist = {
		latitude = latitude,
		longitude = longitude,
		format = displayformat,
		display= displayplace,
		globe = globe,
		wikidata = wikidata,
		wikidataquery = wikidataquery,
		maxdistance = maxdistance,
	}
	
	local val = coord._coord(parameterlist)
	if (not val) and moduleparams.fallbackquery then -- si pas de valeur, essayer la query de sustitution
		parameterlist.wikidataquery = moduleparams.fallbackquery
		parameterlist.wikidataquery.entity = item
		val = coord._coord(parameterlist)
	end
	if val and latitude and longitude and localdata['référence géolocalisation'] then
		val = val .. ' ' .. localdata['référence géolocalisation']
	end
	if val and not localdata['latitude'] then
		val = wd.addLinkBack(val, item, wikidataquery.property)
	end
	if displayinline == false then
		return -- type: external text pour ne pas avoir de ligne vide en infobox
		{
		type = 'external text',
		sortkey = sortkey,
 		value = val
 		}
 	else 
 		return val
 	end
end

function p.coordinates(moduleparams)
	if not moduleparams then
		moduleparams = {}
	end
	-- paramètre coordonnées a la priorité sur "géolocalisation" (=carte)
	local relevant = localdata['coordonnées'] or localdata['géolocalisation'] 
	if relevant == '-' or relevant == 'non' or relevant == 'pas pertinent' or relevant == 'non pertinent' then
		return nil
	end
	-- initialise les paramètres avec les valeurs du module d'infobox (moduleparams)
	return {
		type = 'mixed',
		label = 'Coordonnées',
		maintenancecat = moduleparams.maintenancecat or 'Page géolocalisable sans coordonnées paramétrées',
		sortkey = moduleparams.sortkey,
 		value = function (localdata) return p.coordvalue(moduleparams) end
 	}	
end

function p.geoloc(params)

	if not params then
		params = {}
	end
	if (localdata['géolocalisation'] == '-') or (localdata['géolocalisation'] == 'pas pertinent') then
		return nil
	end
	
	return   { 
		type = 'map',
		latitude = 'latitude',
		longitude = 'longitude',
		wikidata = params.wikidata or {{property = 'P625'}},
		entity = item,
		maps = function() return localdata['géolocalisation'] or params.defaultmaps or "interactive" end, -- paramètre pour la liste des cartes à utiliser
		staticmaps = 'carte', -- carte en mode image simple
		staticmapsWD = {property = "P242", numval = 1}, -- p
		width = params.width,
		pointtype = params.pointtype,
		maptype = params.maptype,
		globe = localdata.globe or localdata['planète'] or params.globe,
		marker = params.marker,
		markercolor = params.markercolor,
		shapecolor = params.shapecolor,
		default_zoom = localdata['zoom'] or params.default_zoom,
		ids = params.ids or id,
		params = {guessmaps = params.guessmaps} -- = quelles cartes utiliser en l'absence de données fournies dans |gélocalisation
	}
end

function p.locationmap(upright)
	return {
		type = 'images',
		imageparameters =  {'carte','imageloc'},
		sizeparameter = 'taille carte',
		captionparameter = {'légende carte','légende imageloc'},
		defaultsize = size,
		defaultupright = upright or '1',
		property = 'P242',
		numval = 1,
	}
end

function p.detailedmap(defaultsize)
	return {
		type = 'images',
		imageparameters =  {'carte'},
		sizeparameter = 'taille carte',
		captionparameter = {'légende carte'},
		defaultsize = defaultsize,
		defaultupright = '1',
		property = 'P1621',
		numval = 1,
	}
end

return p