Nein, MarkerCluster reduziert “nur” die Anzahl der unter LL anzuzeigenden Daten erheblich. Es sollte doch bekannt sein, dass mit zunehmender Anzahl von Objekten die Performance des Browsers, der das Zeug ja darstellen muß, extrem nachlässt.
Bei meiner 2. Lösung, die ich wohl bald bei der aS-Karte verwenden werde, erfolgt dagegen das “Clustern” bereits auf dem Datenserver, was noch mehr Leistung bring. Nur ist das nicht gerade einfach. Falls die Overpass-Api sowas kann, wäre das extrem empfehlenswert.
Du liegst richtig. Markercluster habe ich nicht implementiert da bisher auch noch nicht so gewohlt. Die wiedeeholten Requests gegen die Overpass API sind das Problem, denn wegen denen geht die Performance in den Keller. Es existiert dafür schon ein Algorithmus, welcher die Performance deutlich steigert, jedoch ist dieser aufgrund des Issues auf https://github.com/babykarte/babykarte.github.io/issues/37 von mir deaktiviert worden. Mein Algorithmus kann nämlich nichts mit Rauszoomen anfangen und die Daten werden unvollständig. Das ist ein etwas schwierigeres Problem, dass sich eig. einfach lösen ließe, würde man meiner Meinung nach den Request zu Overpass überladen. Allerdings möchte ich eine überproportional lange Request-Url vermeiden. Ich habe aber auch einen workaround dafür gefunden, dieser geht ein Mittelweg zwischen guter Performance bei anderen Interaktionen mit dem Kartenausschnitt und schlechter Performance wie es aktuell bei der Babykarte der Fall ist.
So ein Statement abzugeben, ohne die Software zu kennen, ist mMn etwas gewagt.
Da du die “Schwächen” der Overpass-Api, die für massenhafte zeitkritische Abfragen nicht so richtig geeignet ist, sowieso nicht beseitigen kannst, kannst du zumindest auf der Browserseite was machen.
Ich würde MarkerCluster testen und danach eine Aussage zur Performance machen.
btw: Eine Karte mit hunderten von Symbolen, die sich auch noch überdecken, ist eh nicht verwendbar. Das macht nur bei höheren Zoomstufen Sinn.
Auch hier würde Clustern für erheblich mehr Übersichtlichkeit sorgen.
Aber das Problem ist nach meinem Verständnis (auch des Codes) nicht die Anzeige im Leaflet, sondern die Dauer der Requests gegen die Overpass API! Und bei den Requests gegen die API hilft markercluster nicht, sagst Du doch selbst.
Markercluster hilft, andere Probleme zu lösen (z.B. dein Übersichtsproblem da im letzten Bild).
Für so “kleine” Anwendungen ist die Overpass API doch ganz gut geeignet, klar, wenn man was richtig schnelles (oder was mit Nachprozessierung) haben will braucht man nen eigenen Stack mit PostGIS und ggf. geoserver drauf, aber die Overpass API kann man für sowas schon nutzen, wenn man die Requests bei Bedarf clever tiled, und ggf. auch Zoombeschränkungen setzt.
Das ist keine prinzipielle Schwäche, sondern Ergebnis des Rate Limitings, das auf der öffentlichen Instanz aktiv ist. Ansonsten könnten einzelne User alle Resourcen der Kiste in Anspruch nehmen, was irgendwie auch nicht so toll ist.
Globale BBOX statt x mal wiederholen
nwr, statt node, way, relation einzeln
POST statt GET, dann ist die Request URL keine Thema
Version 2.5 der Babykarte wurde veröffentlicht. Eine ganz besondere Version für mich, weil wir das erste Projekt sind, das die knapp 50.000 Spielgeräte auswertet, die in OpenStreetMap eingetragen sind. Unterstützt werden sowohl playground (als Marker auf der Karte) als auch playground: (als Liste im Pop-up).
Außerdem gibt es nun auch eine französische Sprachversion.