Projekt-Idee: Baby-Karte

Dank der großartigen Arbeit von ValorNaram wurde heute eine erste Version der Babykarte veröffentlicht.

https://babykarte.github.io/

Es wurden jetzt am Ende (noch) nicht alle ursprünglichen Ideen umgesetzt. Zum Teil werden sie in einer zukünftigen Version hinzukommen, zum Teil wurden sie aber auch aus unterschiedlichen Gründen weggelassen.

Die Performance, wenn bei angezeigten Markern die Karte bewegt wird, ist noch suboptimal. Wer Erfahrungen hat, wie man das verbessern kann, kann sich sehr gerne einbringen.

Die Wiki-Seite wird gerade von mir vollständig neu geschrieben. Wenn Sie fertig ist, soll sie natürlich alle Tags dokumentieren, die von der Karte ausgewertet werden.

Mithilfe kann natürlich in vielen Bereichen gebraucht werden, zum Beispiel in folgenden:

Bitte entsprechende POIs anlegen bzw. die entsprechenden Tags benutzen. Die Datenlage ist im Moment noch sehr dünn:

Feedback und Bug-Reports bitte hier oder auf GitHub.

Gerne Teil unseres Entwicklerteams werden, damit mögliche Verbesserungen schneller umgesetzt werden können (Kenntnisse in JavaScript und/oder CSS)

Wer Lust hat, kann gerne Öffentlichkeitsarbeit für die Karte machen, um sowohl Nutzer als auch Anbieter von Leistungen darauf aufmerksam zu machen.

Wo sind die Babies? :wink:

Leaflet Markercluster ist dein Freund: https://github.com/Leaflet/Leaflet.markercluster

Hab es u.A. hier bei den Hydranten verwendet. Mein Umfeld ist aber total anders als eures und daher nicht portabel.

Gruss
walter

Und hier ein Preview auf eine neue Version der associatedStreet-Karte:

erstellt mit dem GeoServer Point Stacker: https://server.boundlessgeo.com/docs/latest/cartography/rt/pointstacker.html

Gruss
walter

Vielen Dank für die Tipps!

Ich glaub das Problem ist nicht die Anzeige, sondern wiederholte Requests gegen die Overpass-API. Oder macht markercluster da auch was?

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.

Gruss
walter

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.

Gruß
Valor Naram

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.

Gruss
walter

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.

Grüße,
gormo

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.

Stimmt. Daher hatte ich auch “Schwäche” in Apostrophen geschrieben.

Bei kleineren Queries ist mir die fast schon unheimliche Performance der Overpass-Api aufgefallen. Da kommt meine DB manchmal nicht mit.

Gruss
walter

Thank you for your great advice. I will take this into Account.

v.1.1 der Babykarte wurde soeben veröffentlicht, mit einigen kleinen Verbesserungen. Changelog

Gefällt mir sehr gut die Karte!

Sie ist sehr gut und gibt auch Anreiz, bekannte POIs zu überprüfen.

Schön wäre, wenn sie über einen “Permalink” verfügen würde.

Das tut sie. Klicke irgendwo auf die Karte und Du siehst, dass die Url sich ändert. Was Du dann nur tun musst, ist sie kopieren.

Danke hatte nur verschoben - ohne Klick.

So funktioniert es. Danke

Version 2.0 der Babykarte wurde soeben veröffentlicht. Die größten Änderung ist ein Ampelsystem für die Babyfreundlichkeit von Cafés und Restaurants.

Changelog

Die Babykarte unterstützt nun den neuen Tag changing_table

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.