MediaWiki:Gadget-osm.js
Apparence
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) ;
Firefox (sur GNU/Linux) / Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5./**
* Intégration d'OpenStreetMap dans Wikipédia
* (C) 2008 Magnus Manske <magnusmanske@googlemail.com>
* (C) 2014 Arkanosis <jroquet@arkanosis.net>
* Released under the GPL
*/
$( function() {
function makeToggleOsm( params ) {
return function() {
var osm = $( '#OpenStreetMap' );
if ( osm.length ) {
if ( osm.css( 'display' ) === 'none' ) {
osm.css( 'display', 'block' );
} else {
osm.css( 'display', 'none' );
}
return false;
}
var screenWidth = MoveResizeAbsolute_GetScreenWidth();
var screenHeight = MoveResizeAbsolute_GetScreenHeight();
var div = $( '<div>' );
div.attr( 'id', 'OpenStreetMap' );
div.css( {
position : 'absolute',
zIndex : 5000,
top : ( screenHeight * 10 / 100 ) + 'px',
left : ( screenWidth * 15 / 100 ) + 'px',
width : '70%',
height : ( screenHeight * 80 / 100 ) + 'px',
border : '2px solid black',
backgroundColor : 'white',
overflow : 'hidden'
} );
var moveArea = $( '<div>' );
moveArea.css( {
position: 'relative',
top: '0',
width: '100%',
height: '50px'
} );
moveArea.attr( 'title', 'Cliquer et glisser pour déplacer la carte' );
var closeLink = $( '<a>' );
closeLink.css( {
'float': 'right',
margin: '10px'
} );
closeLink.text( 'Masquer' );
closeLink.attr( {
'href': '#',
'title': 'Masquer la carte'
} );
closeLink.click( function() {
div.css( 'display', 'none' );
return false;
} );
moveArea.append( closeLink );
var url = '//tools.wmflabs.org/wiwosm/osm-on-ol/kml-on-ol.php'
+ '?lang=' + mw.config.get( 'wgPageContentLanguage' )
+ '&uselang=' + mw.util.rawurlencode( mw.config.get( 'wgUserLanguage' ) )
+ '¶ms=' + params
+ '&title=' + mw.util.wikiUrlencode( mw.config.get( 'wgTitle' ) );
var iframe = $( '<iframe>' );
iframe.css( {
'width': '100%',
'height': ( ( screenHeight * 80 / 100 ) - 100 ) + 'px',
'clear': 'both'
} );
iframe.attr( 'src', url );
var resizeArea = $( '<div>' );
resizeArea.css( {
position: 'relative',
top: '0',
width: '100%',
height: '50px'
} );
resizeArea.attr( 'title', 'Cliquer et glisser pour redimensionner la carte' );
div.append( moveArea );
div.append( iframe );
div.append( resizeArea );
$( 'body' ).append( div );
MoveResizeAbsolute_AddMoveArea( moveArea.get(), [ div.get() ] );
MoveResizeAbsolute_AddResizeArea( resizeArea.get(), [ div.get(), iframe.get() ], [ 150, 150 ], [ 200, 100 ] );
return false;
};
}
var c = $( '#coordinates-title' );
if ( !c.length ) {
return;
}
var params = '';
$.each( c.find( 'a' ), function( _, a ) {
if ( a.href.match( /geohack/) &&
!a.href.match( /(skyhack|_globe:(?!earth))/) ) {
params = a.href.split( 'params=' )[ 1 ];
return false;
}
} );
if ( params === '' ) {
return;
}
var a = $( '<a>' );
a.attr( {
'id': 'coordinates_osm',
'href': '#',
'title': 'Afficher / Masquer la carte',
'class': 'noprint osm-icon-coordinates'
} );
a.click( makeToggleOsm( params ) );
var img = $( '<img>' );
img.attr( {
'src': '/media/wikipedia/commons/thumb/c/c9/OpenStreetMapLogo.png/17px-OpenStreetMapLogo.png',
'width': '17px',
'height': '17px',
'alt': 'OSM'
} );
a.append( img );
a.append( ' carte' );
c.append( a );
} );