MediaWiki:GeoHack.js

Une page de Wikipédia, l'encyclopédie libre.
Note : après avoir enregistré la page, vous devrez forcer le rechargement complet du cache de votre navigateur pour voir les changements.

Mozilla / Firefox / Konqueror / Safari : maintenez la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou pressez Maj-Ctrl-R (Cmd-R sur Apple Mac) ;

Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5.
/**
 * Ce script permet de personnaliser Modèle:GeoTemplate
 * Il est chargé via http://tools.wmflabs.org/geohack/geohack.php.
 * Documentation sur : mw:Toolserver:GeoHack#JavaScript
 *
 * La page permet actuellement d'afficher une carte OSM via id="osmEmbed".
 * Le script est importé de it:MediaWiki:GeoHack.js, lui-même importé de
 * http://ru.wikipedia.org/w/index.php?title=MediaWiki:GeoHack.js&oldid=74657082
 */
var head  = document.getElementsByTagName('head')[0];
var style  = document.createElement('link');
style.rel  = 'stylesheet';
style.type = 'text/css';
style.href = '//maps.wikimedia.org/leaflet/leaflet.css';
head.appendChild(style);

var script  = document.createElement('script');
script.type = 'text/javascript';
script.src = '//maps.wikimedia.org/leaflet/leaflet.js';
head.appendChild(script);

function embedOpenStreetMap() {
	var OSM_class_R = /\bOSM:([\d.+-]+)_([\d.+-]+)_([\d.+-]+)_(\w+)/;
	var osmTarget = document.getElementById('osmEmbed');
	if (osmTarget && OSM_class_R.exec(osmTarget.className)) {
		var lat = 1.0 * RegExp.$1,
			lon = 1.0 * RegExp.$2,
			zoom = RegExp.$3;
        	
		var map = L.map('osmEmbed').setView([lat, lon], zoom);
		L.tileLayer('//maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png', {
			attribution: '&copy; contributeurs d\'<a href="http://osm.org/copyright">OpenStreetMap</a>'
		}).addTo(map);
		
		L.marker([lat, lon]).addTo(map);
	}
}

window.onload = function() {
	embedOpenStreetMap();
};