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
- Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
// Verwendung von OpenStreetMap in Wikipedia.
// (c) 2009 by Magnus Manske + Prolineserver
// Released under GPL
osmHeadHight = 15;
function openStreetMapInit () {
c = getElementsByClass ( 'coordinates', document, 'span') ;
if (!c) return ;
for ( i = 0 ; i < c.length ; i++ ) {
geohack = 0;
a = c[i].getElementsByTagName ( 'a' ) ;
for ( j = 0 ; j < a.length ; j++ ) {
h = a[j] ;
if ( !h.href.match(/geohack/) ) continue ;
geohack = 1 ;
break ;
}
if ( geohack == 1 ) {
h = a[j] ;
geoParams = h.href.split('params=')[1] ;
if (c[i].id == 'coordinates' || c[i].id == 'text_coordinates' || c[i].id == '') {
geoTitle = wgTitle;
} else {
geoTitle = c[i].id;
}
na = document.createElement ( 'a' ) ;
na.href = 'javascript:openStreetMapToggle(\''+geoParams+'\',\''+geoTitle+'\')' ;
// For some reason this command is executed immediately
// na.onclick = 'openStreetMapToggle(\''+geoParams+'\',\''+geoTitle+'\')' ;
na.style.textDecoration = 'none';
nimg = document.createElement ( 'img' ) ;
nimg.src = 'http://toolserver.org/~prolineserver/images/osm_logo_15.png';
nimg.width = 15;
nimg.title = 'Auf OSM-Karte darstellen'
na.appendChild ( nimg ) ;
// na.appendChild ( document.createTextNode ( 'OSM' ) ) ;
c[i].appendChild ( document.createTextNode ( ' ' ) ) ;
// c[i].appendChild ( document.createTextNode ( ' (' ) ) ;
c[i].appendChild ( na ) ;
c[i].appendChild ( document.createTextNode ( ' ' ) ) ;
// c[i].appendChild ( document.createTextNode ( ') ' ) ) ;
}
}
}
function openStreetMapToggle (geoParams, geoTitle) {
cs = document.getElementById ( 'contentSub' ) ;
osm = document.getElementById ( 'osmdiv' ) ;
if ( cs && osm ) {
cs.removeChild ( osm ) ;
}
if( self.innerHeight ) {
width = self.innerWidth ;
height = self.innerHeight ;
} else if( document.documentElement && document.documentElement.clientHeight ) {
width = document.documentElement.clientWidth ;
height = document.documentElement.clientHeight ;
} else {
width = document.body.clientWidth ;
height = document.body.clientHeight ;
}
osm = document.createElement ( 'div' ) ;
osm.id = 'osmdiv' ;
osm.style.position = 'fixed' ;
osm.style.display = 'block' ;
osm.style.border = '1px solid #000' ;
osm.style.width = (width-320) + 'px' ;
osm.style.height = (height-150) + 'px' ;
osm.style.background = '#ddd';
osm.style.right = '75px' ;
osm.style.top = '75px' ;
osm.style.zIndex = 1 ;
osmclose = document.createElement ( 'a' ) ;
osmclose.href = 'javascript:openStreetMapClose()' ;
osmclose.appendChild ( document.createTextNode ( 'Schließen' ) ) ;
head = document.createElement ( 'div' ) ;
head.id = 'osmhead' ;
head.style.height = osmHeadHight + 'px' ;
head.appendChild ( document.createTextNode ( geoTitle ) ) ;
head.appendChild ( document.createTextNode ( ' (' ) ) ;
head.appendChild ( osmclose ) ;
head.appendChild ( document.createTextNode ( ') ' ) ) ;
iframe = document.createElement ( 'iframe' ) ;
url = 'http://tools.wikimedia.de/~magnus/ol/wp_poi.php?title=' + geoTitle ;
url += '&language=' + wgUserLanguage ;
url += '¶ms=' + geoParams ;
iframe.id = 'openstreetmap' ;
iframe.style.width = (width-320-5) + 'px' ;
iframe.style.height = (height-150-5-osmHeadHight) + 'px' ;
iframe.style.clear = 'both' ;
iframe.src = url ;
osm.appendChild ( head ) ;
osm.appendChild ( iframe ) ;
cs.appendChild ( osm ) ;
}
function openStreetMapClose () {
cs = document.getElementById ( 'contentSub' ) ;
osm = document.getElementById ( 'osmdiv' ) ;
if ( cs && osm ) {
cs.removeChild ( osm ) ;
return ;
}
}
addOnloadHook(openStreetMapInit);
// Stolen from http://www.anyexample.com/webdev/javascript/javascript_getelementsbyclass_function.xml
function getElementsByClass( searchClass, domNode, tagName) {
if (domNode == null) domNode = document;
if (tagName == null) tagName = '*';
var el = new Array();
var tags = domNode.getElementsByTagName(tagName);
var tcl = " "+searchClass+" ";
for(i=0,j=0; i<tags.length; i++) {
var test = " " + tags[i].className + " ";
if (test.indexOf(tcl) != -1)
el[j++] = tags[i];
}
return el;
}