MediaWiki:Gadget-mapframe.js
OBS: Efter du har publicerat sidan kan du behöva tömma din webbläsares cache för att se ändringarna.
- Firefox / Safari: Håll ned Skift och klicka på Uppdatera sidan eller tryck Ctrl-F5 eller Ctrl-R (⌘-R på Mac)
- Google Chrome: Tryck Ctrl-Skift-R (⌘-Skift-R på Mac)
- Internet Explorer / Edge: Håll ned Ctrl och klicka på Uppdatera eller tryck Ctrl-F5
- Opera: Tryck Ctrl-F5.
//<nowiki>
$( function() {
'use strict';
function addMap() {
var coords = $( '#coordinates' );
var globe = coords.attr( 'data-globe' );
var computedcoords = coords.find( '.geo' );
var hasInfobox;
var container = $( '#mw-content-text' ).find( '.mw-parser-output' );
if ( $( '.infobox' ).length ) {
hasInfobox = true;
}
if ( !globe || ( /^earth/i ).test( globe ) ) {
mw.loader.using( 'ext.kartographer.frame', function() {
var computedcoordstext = computedcoords.text();
var arr;
var lat;
var lon;
var str;
var zoom;
var userdefinedcoords;
var userdefinedcoordstext;
var numberofdigits;
if ( computedcoordstext ) {
arr = computedcoordstext.split( '; ' );
if ( arr.length === 2 ) {
lat = arr[ 0 ];
lon = arr[ 1 ];
str = '<mapframe ';
userdefinedcoords = coords.find( '.geo-dms' );
if ( userdefinedcoords.length === 1 ) {
userdefinedcoordstext = userdefinedcoords.text();
numberofdigits = userdefinedcoordstext.match( /[°′″]/g ).length * 2 + userdefinedcoordstext.length - userdefinedcoordstext.replace( /(\.)\d+/g, '$1' ).length;
if ( numberofdigits > 17 ) {
zoom = '19';
} else if ( numberofdigits > 16 ) {
zoom = '18';
} else if ( numberofdigits > 15 ) {
zoom = '17';
} else if ( numberofdigits > 14 ) {
zoom = '16';
} else if ( numberofdigits > 13 ) {
zoom = '15';
} else if ( numberofdigits > 12 ) {
zoom = '14';
} else if ( numberofdigits > 11 ) {
zoom = '13';
} else if ( numberofdigits > 10 ) {
zoom = '12';
} else if ( numberofdigits > 9 ) {
zoom = '11';
} else if ( numberofdigits > 8 ) {
zoom = '10';
} else if ( numberofdigits > 7 ) {
zoom = '9';
} else if ( numberofdigits > 6 ) {
zoom = '8';
} else if ( numberofdigits > 5 ) {
zoom = '7';
} else if ( numberofdigits > 4 ) {
zoom = '6';
} else {
zoom = '1';
}
if ( hasInfobox ) {
str += 'frameless';
} else {
str += 'text="{{SUBPAGENAME}}"';
}
str += ' width=250 height=250 zoom=' + zoom + ' longitude=' + lon + ' latitude=' + lat + ' />';
( new mw.Api() ).get( {
action: 'parse',
title: mw.config.get( 'wgPageName' ),
text: str,
prop: 'text',
formatversion: 2
} ).done( function( data ) {
var html = $( data.parse.text );
var map = html.find( '.mw-kartographer-container' );
if ( hasInfobox ) {
map = map.wrap( '<tr><td colspan="3"></td></tr>' ).parent().parent();
$( '.infobox' ).find( 'tbody' ).first().append( map );
$( '.mw-kartographer-map' ).removeClass( 'floatright' );
$( '.mw-kartographer-map' ).css( 'margin', '0 auto' );
} else {
if ( container.children( 'p' ).length ) {
container.children( 'p' ).first().before( map );
} else {
container.prepend( map );
}
}
mw.hook( 'wikipage.content' ).fire( map );
} );
}
}
}
} );
}
}
if ( $( '.mw-kartographer-container' ).length === 0 ) {
if ( $( '#coordinates' ).length === 1 ) {
addMap();
} else {
mw.hook( 'coordinatesadded' ).add( function() {
addMap();
} );
}
}
} );
//</nowiki>