MediaWiki:Gadget-CoordinateDiffMap.js
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
( function ( mw, $ ) {
if ( !$( '#mw-content-text .diff' ).length || !$( 'table.wb-globe-details' ).length ) {
return;
}
$( 'table.wb-globe-details' ).each( function ( i ) {
var globe = $( this ).find( 'td.wb-globe-globe a' ).attr( 'href' );
if ( globe !== 'http://www.wikidata.org/entity/Q2' ) {
return;
}
$( this ).addClass( 'coordinatediffmap' );
$( this ).find( 'tbody' ).append( '<tr><td colspan=2><div id="coordinatediffmap' + i + '" class="map"></div></td></tr>' );
var lat = $( this ).find( 'td.wb-globe-latitude' ).text();
var lon = $( this ).find( 'td.wb-globe-longitude' ).text();
var precision = $( this ).find( 'td.wb-globe-precision' ).text();
precision = 360 / parseFloat( precision, 10 ) / 120;
var zoom = Math.floor( Math.log( precision ) / Math.log( 2 ) );
zoom = zoom > 18 ? 18 : zoom;
var map = L.map( 'coordinatediffmap' + i ).setView( [ lat, lon ], zoom );
L.tileLayer( 'https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png', {
attribution: 'Map data © <a href="https://openstreetmap.org/copyright">OSM</a> contributors',
maxZoom: 18
} ).addTo( map );
L.marker( [ lat, lon ] ).addTo( map );
} );
}( mediaWiki, jQuery ) );