Benutzer:Simon04/Gadget-osm.js

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.

  • Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
  • Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
  • Internet Explorer/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
  • Opera: Strg+F5
// ## https://de.wikipedia.org/wiki/MediaWiki:Gadget-osm.js
mw.config.set('osm_proj_map_prefix', ' | ');
mw.config.set('osm_proj_map', '<img src="//upload.wikimedia.org/wikipedia/commons/thumb/b/b0/Openstreetmap_logo.svg/17px-Openstreetmap_logo.svg.png" width="17px" height="17px" alt="OSM">'); //"map" in project language
mw.config.set('osm_proj_map_postfix', '');
mw.config.set('osm_proj_lang', 'de');  //project language
// mw.loader.load('//meta.wikimedia.org/w/index.php?title=MediaWiki:OSM.js&action=raw&ctype=text/javascript&smaxage=21600&maxage=86400');

// ## https://meta.wikimedia.org/wiki/MediaWiki:OSM.js

// Using OpenStreetMap in Wikipedia.
// (c) 2008 by Magnus Manske
// heavily altered by [[m:User:Danmichaelo]], [[m:User:Hoo man]]
// Released under GPL

mw.loader.using('mediawiki.util', function() {
	function openStreetMapToggle() {
		var a = $( '#coordinates a' ),
			link = '',
			url = '';
		if (a.length === 0) {
			return;
		}
	 
		if ($('#openstreetmap-container').length > 0) {
			$('#openstreetmap-container').toggle();
			return false;
		}
		
		$.each(a, function(index, value) {
			if ( value.href.indexOf('geohack') === -1 ) {
				return true; // Returning non-false is the same as a continue
			}
			link = value.href;
			return false; // break
		});
		if (link === '') {
			return false; // No geohack link found
		}
		
		url = '//tools.wmflabs.org/wiwosm/osm-on-ol/kml-on-ol.php?lang=' + mw.config.get('osm_proj_lang') + '&uselang=' + mw.config.get('wgUserLanguage') + '&params=' + link.split('params=')[1] + '&title=' + mw.util.wikiUrlencode( mw.config.get( 'wgTitle' ) );
		if ( window.location.protocol === 'https:' ) {
			url += '&secure=1';
		}
		$('#contentSub').append(
			$('<div>').attr('id', 'openstreetmap-container').css({
				width: '100%',
				height: Math.max($(window).height() / 2, 350) + 'px',
				clear: 'both',
				'padding-bottom': '15px',
				'border-bottom': '1px solid #a2a9b1',
				resize: 'vertical',
				overflow: 'hidden'
			}).append(
				// src has to be passed using .attr as it could contain malicious html!
				$('<iframe>').attr('id', 'openstreetmap').attr('src', url).css({
					border: '1px solid #a2a9b1',
					width: '100%',
					height: '100%'
				})
			)
		);
	 
		return false;
	}
	$(document).ready(function() {
		var a = $('#coordinates a'),
			geohack = false;
		if (a.length === 0) {
			return;
		}

		$.each(a, function(index, value) {
			if ( value.href.indexOf('geohack') === -1 ) {
				return true;
			}
			if (value.href.indexOf('_globe:') !== -1) {
				return true; // no OSM for moon, mars, etc
			}
			geohack = true;
			return false;
		});
		if (!geohack) {
			return;
		}

		$('#coordinates').append(
			mw.config.get('osm_proj_map_prefix', ' ('),
			$('<a>').attr('id', 'coordinates_map').attr('href', '#').append(mw.config.get('osm_proj_map')).click(openStreetMapToggle),
			mw.config.get('osm_proj_map_postfix', ')   ')
		);
	});
});