Gruppen verschieden markieren

Status
Es sind keine weiteren Antworten möglich.

DeletedUser3405

Gast
Oh ja stimmt, das ist mir heute gerade auch aufgefallen... Einzelne Dörfer sollten echt auch markierbar sein :wink:
 

DeletedUser

Gast
so damit die kleinen Kinder heute nacht gut schlafen können mit ihrer kleinen neuen Karte hier ist der link zum de Forum!

und hier habt ihr die umgeschriebene Version für die Schweiz:

// ==UserScript==
// @name DS Gruppen auf Karte markieren
// @description Fügt auf der Karte Farbmarkierungen für bestimmte Gruppen zu Dörfern hinzu
// @author Michael Richter
// @namespace http://osor.de/
// @include http://ch*.staemme.ch/staemme.php?screen=overview_villages&intro
// ==/UserScript==

// -----------------------------------------------------------------------------
// Modifikationen dieses Scripts benötigen die Zustimmung des Autors.
// -----------------------------------------------------------------------------

(function(){

// --------- Einstellungen ---------
// Hier werden die Gruppennamen und die jeweiligen Farben eingetragen
var groups = [
['Off', 'orange'],
['Deff', 'red'],
['Späher', 'green'],

];

// Ecke wählen (1 = links oben, 2 = rechts oben, 3 = rechts unten, 4 = links unten)
var position = 2;

// Rechung wählen (1 = waagerecht, 2 = senkrecht)
var orientation = 2;

// Größe der einzelnn Markierungen in Pixel
var size = 8;

// --------- Ende ---------
// folgender Code sollte nicht verändert werden.

var $x = function(p, context) {
if(!context)
context = document;
var i, arr = [], xpr = document.evaluate(p, context, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
for (i = 0; item = xpr.snapshotItem(i); i++)
arr.push(item);
return arr;
};

var spacer = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';

var createIcon = function(idx) {
var img = document.createElement('img');
img.src = spacer;
img.title = groups[idx][0];
img.setAttribute('style', 'width: ' + size + 'px; height: ' + size + 'px; background-color: ' + groups[idx][1]);
return img;
};

var legend = $x('//form/table[@class="map_container"]/parent::*/parent::td');
if(legend.length > 0) {
var div = document.createElement('div');
div.style.padding = '10px';
div.innerHTML = '<h3>Legende</h3>';
for(var i = 0; i < groups.length; i++) {
div.innerHTML += '<div><img style="border: 1px solid #333; background-color: ' + groups[1] + '; width: ' + size + 'px; height: ' + size + 'px;" src="' + spacer + '" alt="' + groups[0] + '" title="' + groups[0] + '" /> ' + groups[0] + '</div>';
}
legend[0].appendChild(div);
}

var fields = $x('//div[@id="maNew" or @id="mapOld"]/table[@class="map"]/tbody/tr/td/a/img');
var search = /map_popup\('.*', '.*', '.*', \d+, '.*', '.*', '(.*)', .*, \d+, \d+\)/;
var match, bg, vil;
for(var i = 0; i < fields.length; i++) {
bg = fields.parentNode.parentNode.style.backgroundColor;
if((bg == '#ffffff' || bg == '#f0c800' || bg == 'rgb(255, 255, 255)' || bg == 'rgb(240, 200, 0)')
&& (match = search.exec(fields.getAttribute('onmouseover')))) {
var icodiv = document.createElement('div');
icodiv.style.position = 'absolute';
icodiv.style.border = '1px solid #333';
for(var j = 0; j < groups.length; j++) {
var vilgrps = match[1].split(', ');
for(var k = 0; k < vilgrps.length; k++) {
if(vilgrps[k] == groups[j][0]) {
icodiv.appendChild(createIcon(j));
if(orientation == 2) {
icodiv.appendChild(document.createElement('br'));
}
}
}
}
vil = fields.parentNode.firstChild;
fields.parentNode.insertBefore(icodiv, vil);
switch(position) {
default:
case 1:
if(orientation == 1)
icodiv.style.left = (icodiv.offsetLeft + 10) + 'px';
else
icodiv.style.top = (icodiv.offsetTop + 10) + 'px';
break;
case 2:
icodiv.style.left = (icodiv.offsetLeft + vil.offsetWidth - icodiv.offsetWidth) + 'px';
break;
case 3:
icodiv.style.left = (icodiv.offsetLeft + vil.offsetWidth - icodiv.offsetWidth) + 'px';
icodiv.style.top = (icodiv.offsetTop + vil.offsetHeight - icodiv.offsetHeight) + 'px';
break;
case 4:
icodiv.style.top = (icodiv.offsetTop + vil.offsetHeight - icodiv.offsetHeight) + 'px';
break;
}
}
}

})();


Gruß
Marcel
 
Status
Es sind keine weiteren Antworten möglich.
Oben