Utilisateur:Dr Brains/OpenStreetMap.js
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.// Verwendung von OpenStreetMap in Wikipedia.
// (c) 2008 by Magnus Manske
// Released under GPL
// Modifié pour marcher après moveCoord() ci-dessus
// ------------------------------------ VARIABLES --
var OpenStreetMap_Param_Position = "fixed" // "fixed" ou "absolute"
// position "fixed" (reste fixe) ou "absolute" (défile avec la page),
// modifiable par tout utilisateur enregistré dans une fonction nommée « openStreetMap_UserOptions »
// voir [http://fr.wikipedia.org/w/index.php?title=Utilisateur:Dr_Brains/monobook.js&diff=58876776&oldid=58876751]
// --------------------------------------- TEXTES --
var OpenStreetMap_Text_Map = "CARTE";
var OpenStreetMap_Text_MapPop = "Afficher/Masquer la carte";
var OpenStreetMap_Text_Hide = "Réduire";
var OpenStreetMap_Text_HidePop = "Cliquer pour réduire la carte";
var OpenStreetMap_Text_Show = "Développer";
var OpenStreetMap_Text_ShowPop = "Cliquer pour développer la carte";
var OpenStreetMap_Text_Close = "Fermer";
var OpenStreetMap_Text_ClosePop = "Cliquer pour fermer la carte";
var OpenStreetMap_Text_MovePop = "Cliquer et glisser pour déplacer la carte";
var OpenStreetMap_Text_ResizePop = "Cliquer et glisser pour redimensionner la carte";
// ------------------------------------ FONCTIONS --
function OpenStreetMap_Init() {
if(typeof(OpenStreetMap_UserOptions)=="function") OpenStreetMap_UserOptions();
if((OpenStreetMap_Param_Position=="fixed")&&(typeof(MoveResizeFixed_AddMoveArea)!="function")) obtenir('MoveResizeFixed');
if((OpenStreetMap_Param_Position=="absolute")&&(typeof(MoveResizeAbsolute_AddMoveArea)!="function")) obtenir('MoveResizeAbsolute');
var c = document.getElementById('coordinates-title') ;
if(!c) return ;
var a = c.getElementsByTagName('a') ;
var geohack = false;
for(var i=0;i<a.length;i++){
var h = a[i].href ;
if(!h.match(/geohack/)) continue ;
geohack = true ;
break ;
}
if(!geohack) return ;
var na = document.createElement('a') ;
na.href = 'javascript:OpenStreetMap_Toggle();' ;
na.title = OpenStreetMap_Text_MapPop ;
na.innerHTML = OpenStreetMap_Text_Map;
c.appendChild(document.createTextNode(' (')) ;
c.appendChild(na) ;
c.appendChild(document.createTextNode(')')) ;
}
function OpenStreetMap_Toggle() {
var c = document.getElementById('coordinates-title') ;
if(!c) return ;
var osm = document.getElementById('OpenStreetMap') ;
if (osm) {
if(osm.style.display == 'none') {
osm.style.display = 'block' ;
OpenStreetMap_RestoreStyle();
}else{
osm.style.display = 'none' ;
}
return;
}
var found_link = false ;
var a = c.getElementsByTagName('a') ;
var h;
for(var i=0;i<a.length;i++){
h = a[i].href ;
if(!h.match(/geohack/)) continue ;
found_link = true ;
break ;
}
if ( !found_link ) return ; // No geohack link found
h = h.split('params=')[1] ;
var OSMDiv = document.createElement('div');
OSMDiv.id = 'OpenStreetMap' ;
var MoveArea = document.createElement('div');
MoveArea.id = 'OpenStreetMap_MoveArea' ;
var Links = document.createElement('span');
Links.setAttribute("style", "float:right;margin:10px;");
var HideLink = document.createElement('a');
HideLink.id = "OpenStreetMap_HideLink";
HideLink.innerHTML = OpenStreetMap_Text_Hide;
HideLink.title = OpenStreetMap_Text_HidePop;
HideLink.href = "javascript:OpenStreetMap_HideShow();";
var CloseLink = document.createElement('a');
CloseLink.innerHTML = OpenStreetMap_Text_Close;
CloseLink.title = OpenStreetMap_Text_ClosePop;
CloseLink.href = "javascript:OpenStreetMap_Toggle();";
Links.appendChild(HideLink);
Links.appendChild(document.createTextNode(' - '));
Links.appendChild(CloseLink);
MoveArea.appendChild(Links);
var iFrame = document.createElement('iframe') ;
iFrame.id = 'OpenStreetMap_iframe' ;
var url = 'http://toolserver.org/~kolossos/openlayers/kml-on-ol.php?lang=' + mw.config.get('wgUserLanguage') + '¶ms=' + h ;
iFrame.src = url ;
var ResizeArea = document.createElement('div');
ResizeArea.id = 'OpenStreetMap_ResizeArea' ;
OSMDiv.appendChild(MoveArea);
OSMDiv.appendChild(iFrame);
OSMDiv.appendChild(ResizeArea);
document.body.appendChild(OSMDiv) ;
OpenStreetMap_RestoreStyle();
var ElementsToMove = new Array(OSMDiv);
var ElementsToResize = new Array(OSMDiv, iFrame);
var ElementsMinWidths = new Array(200, 200);
var ElementsMinHeights = new Array(200, 100);
if(OpenStreetMap_Param_Position=="fixed"){
MoveResizeFixed_AddMoveArea(MoveArea, ElementsToMove);
MoveResizeFixed_AddResizeArea(ResizeArea, ElementsToResize, ElementsMinWidths, ElementsMinHeights);
}else if(OpenStreetMap_Param_Position=="absolute"){
MoveResizeAbsolute_AddMoveArea(MoveArea, ElementsToMove);
MoveResizeAbsolute_AddResizeArea(ResizeArea, ElementsToResize, ElementsMinWidths, ElementsMinHeights);
}
}
function OpenStreetMap_RestoreStyle(){
var OSMDiv = document.getElementById('OpenStreetMap');
var MoveArea = document.getElementById('OpenStreetMap_MoveArea');
var iFrame = document.getElementById('OpenStreetMap_iframe');
var ResizeArea = document.getElementById('OpenStreetMap_ResizeArea');
var Link = document.getElementById("OpenStreetMap_HideLink");
if((!OSMDiv)||(!MoveArea)||(!iFrame)||(!ResizeArea)||(!Link)) return;
var Link = document.getElementById("OpenStreetMap_HideLink");
Link.innerHTML = OpenStreetMap_Text_Hide;
Link.title = OpenStreetMap_Text_HidePop;
if(OpenStreetMap_Param_Position=="fixed"){
var LargeurEcran = MoveResizeFixed_GetScreenWidth();
var HauteurEcran = MoveResizeFixed_GetScreenHeight();
}else if(OpenStreetMap_Param_Position=="absolute"){
var LargeurEcran = MoveResizeAbsolute_GetScreenWidth();
var HauteurEcran = MoveResizeAbsolute_GetScreenHeight();
}
OSMDiv.style.position = OpenStreetMap_Param_Position;
OSMDiv.style.zIndex = 5000;
OSMDiv.style.top = parseInt(HauteurEcran*10/100) + "px";
OSMDiv.style.left = parseInt(LargeurEcran*15/100) + "px";
OSMDiv.style.width = "70%";
OSMDiv.style.height = parseInt(HauteurEcran*80/100) + "px";
OSMDiv.style.border = "2px solid black";
OSMDiv.style.backgroundColor = "white";
OSMDiv.style.overflow = "hidden";
MoveArea.style.position = "relative";
MoveArea.style.top = "0";
MoveArea.style.width = "100%";
MoveArea.style.height = "50px";
MoveArea.title = OpenStreetMap_Text_MovePop;
iFrame.style.width = '100%' ;
iFrame.style.height = parseInt((HauteurEcran*80/100)-100) + 'px' ;
iFrame.style.clear = 'both' ;
iFrame.style.display = 'block';
ResizeArea.style.position = "relative";
ResizeArea.style.top = "0";
ResizeArea.style.width = "100%";
ResizeArea.style.height = "50px";
ResizeArea.title = OpenStreetMap_Text_ResizePop;
ResizeArea.display = 'block';
}
function OpenStreetMap_HideShow(){
var OSMDiv = document.getElementById('OpenStreetMap');
var MoveArea = document.getElementById('OpenStreetMap_MoveArea');
var iFrame = document.getElementById('OpenStreetMap_iframe');
var ResizeArea = document.getElementById('OpenStreetMap_ResizeArea');
var Link = document.getElementById("OpenStreetMap_HideLink");
if((!OSMDiv)||(!MoveArea)||(!iFrame)||(!ResizeArea)||(!Link)) return;
if(Link.innerHTML == OpenStreetMap_Text_Hide){
Link.innerHTML = OpenStreetMap_Text_Show;
Link.title = OpenStreetMap_Text_ShowPop;
OSMDiv.style.top = "10px";
OSMDiv.style.left = "2px";
OSMDiv.style.width = "148px";
OSMDiv.style.height = "50px";
iFrame.style.display = 'none';
ResizeArea.display = 'none';
}else{
Link.innerHTML = OpenStreetMap_Text_Hide;
Link.title = OpenStreetMap_Text_HidePop;
iFrame.style.display = 'block';
ResizeArea.display = 'block';
OpenStreetMap_RestoreStyle();
}
}
addOnloadHook(OpenStreetMap_Init);