Das hab ich auch nie behauptet, dass das passieren soll. Und es funktioniert bereits jetzt deutlich besser als zigfach Overpass-API in uMap eingetragen zu haben. Wie man leicht auf der Map vom Themenersteller sehen kann, hagelt es 429-Meldungen von Overpass. Das passiert nun nicht mehr.
Das Script habe ich so geschrieben (ohne Datenbank) veröffentlicht, damit jeder das für sich super simpel auf einen 08/15-Webhost packen kann. Das ist der spezifische Zweck.
Ja finde hier hat uMap selbst stark Verbesserungspotenzial an sich.
BBox wird minimalst verschoben/verändert → alles wird erneut abgefragen.
Es wird reingezoomt → alles wird erneut abgefragt (wieso? Die BBox wird kleiner und ist im Bereich der alten).
Es wird zurückgezoomt/verschoben → erneute Datenabfrage, hier könnte man schonmal minimales Caching haben
Diesbezüglich wäre es schonmal ungemein sinnvoller, wenn hier uMap bereits einerseits feststellt, was unnötige Requests sind, hier kann schnell drastisch reduziert werden.
Ideal sicherlich auch ein Zusammenfassen, wobei dann halt die uMap-Option “ausgelagerte Daten via dynamischer URI” halt Overpass-URIs erkennen und berücksichtigen müsste. Hatte auch erst überlegt, ob ich es als JS-Erweiterung für Tamper-/Grease-Monkey baue, welche dann uMap erweitert. Fand die Lösung so jetzt halt nur allgemeingültiger (nicht nur für uMap nutzbar) und auch schneller/einfacher nutzbar. Zudem funktioniert es für den uMap-Betrachter transparent. Wenn ich mir also eine Karte erstelle und dann auf einem anderen PC es anschaue, geht’s immernoch, auch wenn ich die JS-Erweiterung nicht drin habe.
Aber ja, denkbar ist es absolut, dass hier uMap erkennt, dass zigfach Overpass abgefragt werden soll und dann entsprechend alle Einzelabfragen zusammenfässt und nur einmal abfragt. Aktuell werkelt hier halt jeder Layer/Ebene in uMap für sich. Da müsste man sich jetzt erstmal arg den Kopf zerbrechen, wie man es genau haben möchte.
Gut, das kann man natürlich immer und wenn man jetzt simpel das Umsetzen könnte, was du schreibst, hätte man es ja sicherlich bereits getan 
Denkbar wäre allerdings, dass auch Overpass-API sowas wie ich geschrieben habe selbst mit anbietet. Dann hätte sich dein angesprochenes Problem mit Rate-Limiting ja erledigt. Im Prinzip haben die Overpass-API-Server ja selbst ein Interesse daran, eine Möglichkeit anzubieten, dass nicht zig Dinge einzeln abgefragt werden, was auch problemfrei zusammengefasst werden könnte. Ich würd mal gern wissen, wieviel zusätzliche Last z.B. auf https://overpass-api.de/ allein dadurch entsteht, weil auf den Standardkarten openstreetmap.org/.de via Objektabfrage immer gleich zwei einzelne Abfragen an https://overpass-api.de/ rausgehen. Wobei natürlich auch hier es clientseitig gelöst werden könnte indem halt das JS von openstreetmap.org/de bei einer Objektanfrage nur eine Abfrage stellt wo beides zusammen abgefragt wird.
Und ich rede jetzt explizit nicht davon, dass jetzt jede Overpass-API-Anfrage bzw. deren Ergebnis gecacht wird (das würde vieles auch kaputt machen), sondern dass lediglich die Overpass-API selbst eine Erweiterung hat, mit der es möglich ist (bei Bedarf und expliziter Angabe), dass mehrere einzelne HTTP-Anfragen faktisch nur einmal die Overpass-API veranlassen “zu arbeiten”.
Letztlich sollte sich aber dennoch immer der Client einer Overpass-API immer Gedanken dazu machen, wie er möglichst nicht zahlreiche HTTP-Anfragen unnötig an die API hinrotzt. Und auch der Client sollte sauber https://overpass-api.de/api/kill_my_queries aufrufen, wenn die Antworten von Overpass überhaupt nicht mehr benötigt werden. Das sollte uMap z.B. nämlich auch berücksichtigen (dafür müsste aber wiederum wie gesagt uMap natürlich die dynamische URL interpretieren und verstehen “ah, das ist Overpass, hier musss ich x und y tun”).
Da “kill_my_queries” ist mir vorhin erst noch in Sinn gekommen, weil ich es bei Overpass-Turbo sah. Will ich jetzt auch noch in mein Script einbauen, dass wenn der selbe Abfragende eine neue Anfrage mit anderer BBox stellt, dass dann die alten Anfragen abgebrochen werden.