Karte für die Stolpersteine

HI !

ich hatte gerade Kontakt mit einer Stolperstein-Gruppe und da war es so das ich den Link auf die Karte in Verbindung mit der Overpass-Api denen gegeben hatte.

Diese Karte wurde für den “nicht-OSM’ler” für unpassend angesehen. Stimmt auch.

Da Netzwolf seine Karte nicht mehr hat die Frage - gibt es eine Alternative die nur betankt werden muss … ?

Gruß Jan :slight_smile:

Was ist mit denen unter Stolpersteine#Karten ? Ist das die “Netzwolf”-Karte? Die dort aufgeführte http://geschichtskarten.openstreetmap.de/stolpersteine/ funktioniert und scheint aktuell zu sein.

Geht’s ein bisschen genauer?

Nein - denn nur wo “Netzwolf” draufsteht ist auch “Netzwolf” drin…

OT: Danke, YMMD!

Nahmd,

.oO( wenn er sich da nicht mal irrt. )

Gruß Wolf

@Netzwolf: :slight_smile:

Hallo Netzwolf,

kannst Du mal kurz sagen, warum Du die Stolperstein-Karte nicht mehr bereitstellst?

Hast Du keine Lust mehr am Thema?

Ist die Karte mit dem Programmcode übernehmbar?

viele Grüße

Dietmar aka okilimu

Nahmd,

Die Stolpersteinkarte findet sich jetzt bei den Geschichtskarten:

  • statt der Cluster-Icons benutze ich den von der Monumente-Karte bekannten Übersichts-Layer;
  • der Datenfeed ist der gleiche geblieben;
  • dazu gekommen ist eine Suche nach Namen und image-Anzeige im Popup;
  • ansonsten: die Popups sehen grauslich aus, da werde ich noch was dran tun.

Klar. Du kannst Seite, JS, Icons usw. vom Geschichtskarten-Server absaugen, Datenfeed siehe oben.
Die Namenssuche: http://geo.netzwolf.info/api/search/db/stolpersteine?q=butterberg
(weitere Parameter: limit=n; format=text|csv|xml|html|json|jsonp|jsonp!callback=func)

Gruß Wolf

Hallo !

viele Dank für Eure Rückmeldung.

@Netzwolf: wo Du Stolpersteine geschrieben hast ist es mir auch wieder in den Sinn gekommen. Damals gab es in der popupmarker.js für die zugehörige Karte eine Cluster-Funktion. Habe nochmal nachgesehen und meine es müßte nachfolgender Abschnitt gewesen sein:

------------------------------------------------------

	createPopup: function (marker, nopan) {
		this.destroyPopup ();
		//---------------------------------------------------------
		//	check for overlapping icons
		//---------------------------------------------------------
		var cluster = [];
		if (this.clusterSize>0) {
			var limit = this.clusterSize/Math.pow(2,this.map.zoom)*156543;
			for (var i=0; i<this.markers.length; i++) {
				var member=this.markers[i];
                        	if (Math.abs(marker.lonlat.lat-member.lonlat.lat)>limit) continue;
                        	if (Math.abs(marker.lonlat.lon-member.lonlat.lon)>limit) continue;
				cluster.push (member.data);
				if (member.data.location && this.locations[member.data.location]) {
					for (var j=0; j<this.locations[member.data.location].length; j++) {
						cluster.push (this.locations[member.data.location][j]);
					}
				}
			}
			if (this.clusterSort) cluster.sort(this.clusterSort);
		}

Leider kann ich den Code nicht ganz bildlich nachvollziehen - kannst Du mir den allg. verständlich übersetzen. War das nicht auch der Code der seiner Zeit die CSV entsprechend um die Cluster-Punkte erweitert hat - oder habe ich jetzt etwas völlig durcheinander gebracht ?

Gruß Jan :slight_smile:

Nahmd,

Der Code wird in Stolperstein- und Geschichtskarte verwendet. Er hat keinen Einfluss auf die Darstellung von Icons, sondern wird erst beim Erzeugen des Popups aktiviert (daher der listig gewählte Name “createPopup”): bei übereinanderliegenden Icons nimmt er die Detaildaten aller beteiligten Symbole ins Popup und nicht nur die des obersten Symbols.

Gruß Wolf

Moin!

also lag ich falsch !

aber in der Stolperstein-CSV gab es doch die Koordinaten der Cluster-Punkte - wie waren diese denn nochmal entstanden ?

Gruß Jan .-)

Nahmd,

Die naive Implementierung von Server-Side-Clusterung ist offensichtlich: man nehme eine Liste von Clustern, zuerst leer. Dann nimmt man nacheinander jeden POI, schaut, mit welchen bereits existierenden Clustern er überlappt, und wirft den Poi zusammen mit all diesen Clustern in einen neuen Cluster. Überlappt der POI mit keinem Cluster, so erzeugt man für ihn einen neuen. Optional kann man die POIs je Cluster mitzählen und zuletzt Cluster mit nur einem POI darin tilgen. Als Koordinaten für einen Cluster kann man den Mittelpunkt der BBOX oder den Schwerpunkt der POIs nehmen.

Der Teufel steckt im Detail:

  1. ich will wissen, ob die Symbole zu zwei POIs auf der Karte überlappen. Dazu muss ich die verwendete Projektion und die Zoomstufe kennen, und (naiv betrachtet) die geographischen Koordinaten meiner POIs auf Pixel-Koordinaten umrechen.

  2. die naive Implementierung braucht Zeit O(#Cluster * poi). Mit O(#POI²) abgeschätzt, gäbe das bei der Geschichtskarte in der Größenordung von 100 Milliarden Operationen, bei 1µs je Vergleichsschritt also um 1 Tag Rechenzeit. Bei signifikanten Datenmengen braucht es offensichtlich einen listigeren Algorithmus.

Kluge Leute haben dazu kluge Sachen geschrieben.

Gruß Wolf

hi !

klingt alles ziehmlich schwer und verstanden habe ich noch nichts.

Vielleicht denke ich mir selber was aus - nimm den ersten Punkt und suche was im Umkreis liegt → 1 Cluster. Dann kommt der nächte und sammle ein…

Was nichts im Umkreis findet bleibt ein single - nicht zu jedem Topf findet sich ein Deckel !.-)

Wir mir wohl etwas weiterhelfen.

Vielleicht ist das fast dasselbe - vermutlich nur nicht so intelligent !

Gruß Jan :slight_smile: