Vorstellung: TICKERKARTE – öffentliche Polizeimeldungen auf der Karte (Nominatim, MapLibre, OpenFreeMap)

Hallo zusammen,

ich bin kein Mapper, nutze OSM aber seit Jahren und möchte ein Projekt vorstellen, das ohne die OSM-Infrastruktur nicht ginge: POLIZEIKARTE sammelt die öffentlichen Pressemeldungen deutscher Polizeibehörden und stellt sie auf einer Karte dar. Derzeit rund 76.800 Vorfälle aus 294 Städten in allen 16 Bundesländern, aus 95 Quellen (Presseportal, Landesportale, seit kurzem auch die Bundespolizei für Bahnhöfe). Jede Meldung verlinkt auf ihr Original. Nicht-kommerziell, ohne Verbindung zu einer Behörde, Freizeitprojekt neben dem Job.

Technik: Die Karte läuft auf MapLibre GL JS mit Kacheln von OpenFreeMap (Positron). Die Geokodierung macht Nominatim — Straßenname plus Stadt, keine Hausnummern, eine Anfrage pro Sekunde, eigener Cache, User-Agent mit Kontaktadresse. So sind rund 60.000 Meldungen verortet, 43.000 davon straßengenau; der Rest liegt auf Stadtteil- oder Stadtebene, und die Karte sagt das auch. Stadtumrisse kommen aus den VG250 des BKG, amtliche Vergleichsebenen aus dem Unfallatlas der Statistischen Ämter und der Kriminalstatistik des BKA. Attribution steht in der Karte und auf der Methodikseite, die auch erklärt, was die Daten nicht können: Die Zahl der Meldungen zeigt die Pressearbeit einer Behörde, nicht die Lage.

Nicht überrascht sein, wenn eine Straße daneben liegt — Ortsangaben in Pressemeldungen sind Fließtext, und gleichnamige Orte waren mein häufigster Fehler (Neustadt, Herzberg, Fürth bei Landshut statt Fürth).

Zwei Fragen an euch:

  1. Straßengeokodierung ohne Hausnummer: Ich schicke Nominatim „Straße, Stadtteil, Stadt" und nehme den nächsten Treffer zum Stadtmittelpunkt. Gibt es einen besseren Weg, Mehrdeutigkeiten zu vermeiden — strukturierte Abfrage, viewbox, oder eher Overpass/Photon für diesen Fall?

  2. Stadtgrenzen: Ich habe die amtlichen VG250 genommen, weil Lizenz und Gebietsstand eindeutig sind. Spricht aus eurer Sicht etwas dafür, stattdessen die OSM-Grenzen (admin_level 6/8) zu verwenden — etwa Aktualität oder Konsistenz mit den Kacheln?

Danke fürs Lesen, Kritik willkommen.

Meine Stadt ist leider nicht dabei.
Ist die Polizeipresse Kreis COE nicht auslesbar?

Hallo Mathias,

erst mal willkommen im Forum. :slight_smile:

Um zu Polizeipresse-Meldungen einen passenden Ort zu finden, habe ich auch schon oft manuell mit OSM gesucht.

Dass da nirgends Hausnummern angegeben werden ist zwar oft ein kleines Manko, aber es gibt einige Fälle wo man ziemlich punktgenau verorten kann. Hier ein Beispiel aus Darmstadt:


Die Mitte der Hochstraße ist hier nur eine schlechte Näherung, wenn zusätzlich die Querstraße der Kreuzung (Mathildenstr.) benannt wird. Also da ginge noch was :wink:

Manchmal habe ich auch die Erfahrung gemacht, dass die Pressestellen der Polizei anscheinend auch ihren eigenen Sprachgebrauch haben, der sich dann zwar massiv in Pressemeldungen widerspiegelt, aber in OSM/Nominatim nicht bekannt ist.

Eine Google-Suche “Hechtsheimer Tunnel” site:presseportal.de zeigt haufenweise Treffer für diese Benennung, aber z.B. bei einer Google-Suche nach “Hechtsheimer Tunnel” Wikipedia muss man schon der KI-Antwort folgen:

Übersicht mit KI
Der Wikipedia-Artikel zum Hechtsheimer Tunnel ist unter dem offiziellen Namen Mainzer Autobahntunnel zu finden.

In der Trefferliste ist der Wikipedia-Eintrag nicht gelistet, da dort diese Bezeichnung nicht vorkommt.

Ich frage mich da ernsthaft, ob die Wikipedia-Benennung wirklich so offiziell ist und ob und wie wir den Polizeipresse-Namen “Hechtsheimer Tunnel” zusätzlich an den Tunnel taggen sollen.

Edit: Link ergänzt.

zum Beispiel als alt_name

Doch, ist sie – und seit gestern ist der Kreis Coesfeld drin, alle elf Gemeinden, z. B. Polizeimeldungen Dülmen | POLIZEIKARTE . Danke für den Anstoß, das hat nebenbei einen Fehler bei den NRW-Kreisbehörden aufgedeckt. Noch dünn, der Feed reicht nur zwei Wochen zurück – füllt sich von selbst.

In Hilden bzw. Kreis Mettmann habe ich jetzt auch nichts gefunden. Ist das einfach nichts dazu in der Datenbank? Zumindest Verkehrsunfälle gab es da in letzter Zeit, aber ich weiß natürlich nicht, ob die in dem Verzeichnis mit drin sind.

PS: Hier wäre was (abseits von Verkehrsunfällen), was ich da evtl. erwarten würde: Achtung, Taschendiebstahl: Portemonnaie aus Rucksack geklaut - Dein Hilden

Danke – das mit den Kreuzungen stimmte, und es ist jetzt behoben: Nennt eine Meldung „Kreuzung A / B“, hole ich mir über Overpass den Knoten, den beide Wege teilen, statt Nominatim nach der ersten Straße zu fragen. Im Bestand sind das gut 2.000 Meldungen, die in den nächsten Wochen portionsweise auf den Knoten wandern – Overpass will nicht gehetzt werden; neue landen direkt dort.

Beim Nachsehen ist mir noch etwas aufgefallen, das euch vielleicht schmunzeln lässt: Meine Straßenerkennung hielt „Anrufer“ und „Verkäufer“ für Straßen, weil sie auf -ufer enden. Hunderte Nominatim-Anfragen für nichts – auch das ist raus.

Zu den Polizei-Namen: Von meinen ~6.800 gescheiterten Abfragen sind die meisten Tippfehler der Pressestellen oder Umlandstraßen unter dem Stadtnamen. Echte Eigennamen wie „Hechtsheimer Tunnel“ sind eine kleine Teilmenge – aber genau die, die Nominatim über ein alt_name finden würde. Wenn das für euch nützlich ist, ziehe ich die Liste aus dem Cache und stelle sie hier rein; ob und wie das getaggt gehört, könnt ihr besser beurteilen als ich.

Mir ist gestern noch aufgefallen, das Nominatim die Relation (16253860) mit Namen “Mainzer Autobahntunnel” nicht findet. Vielleicht liegt es am type=tunnel, der als Status lediglich “proposed” hat.

Wenn du aus den Polizeipressemeldungen so eine Liste von echten Eigennamen generieren kannst, so fände ich das recht interessant.

Ja, war schlicht nicht drin – wie Coesfeld neulich. Wir hatten die großen Präsidien, aber keine der Kreispolizeibehörden. Danke fürs Nachfragen, ist jetzt behoben: Der ganze Kreis Mettmann ist seit heute dabei, also Hilden, Mettmann, Ratingen, Velbert, Langenfeld, Monheim, Erkrath, Haan, Heiligenhaus und Wülfrath. Unfallstatistik und Kreis-PKS gleich mit.

Kleiner Dämpfer: Die Seite ist noch ziemlich leer, weil sie heute anfängt. Presseportal gibt pro Behörde nur die letzten 15 Meldungen her, und älteres darf man nicht nachladen – der Taschendiebstahl aus dem Dein-Hilden-Artikel ist also leider durch. Alles ab jetzt läuft rein. Bei zwei, drei Meldungen am Tag für den ganzen Kreis braucht Hilden ein paar Wochen, bis sich was ansammelt.

Was mir beim Anbinden aufgefallen ist: Die Mettmanner schreiben gern Sammelmeldungen („Einbrüche aus dem Kreisgebiet“ – vier Städte in einem Text). Die hängen wir erstmal an die erstgenannte Stadt; sauber zerlegen können wir sowas bisher nur bei den Sachsen. Und hinten am Titel klebt immer eine Vorgangsnummer, die musste erst raus. :slightly_smiling_face:

Schönes Projekt!

In Trier hakt es allerdings auch noch:

  1. Deine Seite behauptet, 8 Meldungen aus Trier zu haben und listet sie unten auf der Seite auch auf, zeigt auf der Karte aber nur 2 an. Dabei hat sie unten in der Liste zumindest bei einer weiteren den exakten Straßennamen extrahiert.
  2. Du scheinst nur die Meldungen der Polizeidirektion Trier ( 734 News (2026) von Polizeidirektion Trier - Pressemeldungen | Presseportal) auszulesen; es gibt aber auch noch die des Polizeipräsidiums Trier (311 News (2026) von Polizeipräsidium Trier - Pressemeldungen | Presseportal).

Fast – am „proposed“ liegt es nicht, sondern daran, dass Nominatim Relationen standardmäßig nur bei type=multipolygon, boundary und waterway importiert, alles andere wird ignoriert. Die Tunnel-Relation ist für die Suche also unsichtbar, egal wie sauber sie getaggt ist. Was Nominatim dagegen kennt: tunnel=* und bridge=* auf Ways zählen als „named_with_key“, d. h. ein Way mit tunnel=yes wird suchbar, sobald er tunnel:name trägt. Die acht Mitglieds-Ways der Relation haben nur ref=A 60 und tunnel=yes – mit tunnel:name=Mainzer Autobahntunnel auf den Ways wäre der Tunnel morgen findbar (gleiches Spiel mit bridge:name). Beim Hechtsheimer Tunnel dasselbe Bild: null Treffer.

Zur Liste: Habe ich gemacht. Aus 76.720 Meldungen alle Namen von Tunneln, Brücken, Autobahnkreuzen, Anschlussstellen, Rastplätzen, Kreisverkehren, Unterführungen, Parks, Passagen/Centern und Hallen gezogen, die in mindestens zwei Meldungen vorkommen – 312 Stück –, und jeden gegen Nominatim geprüft (mit der Stadt, dann ohne Gattungswort, dann deutschlandweit):

  • 219 gefunden, Name und Objektart passen
  • 67 nur als anderes Objekt (der Name existiert als Bahnhof, Ortsteil oder Straße, aber nicht als das, was die Polizei meint – bei Anschlussstellen oft nur ein Ranking-Problem der Suche)
  • 26 nicht gefunden

CSV mit allem, inklusive Beispielmeldung je Name: https://polizeikarte.de/daten/eigennamen-polizeimeldungen.csv

Die „nicht gefunden“-Zeilen sind die interessanten. Mein Lieblingsbeispiel: Die Dresdner Polizei schreibt konsequent „Alaunpark“, in OSM heißt die Fläche „Alaunplatz“ – ein klassischer alt_name. Ähnlich Rosenaupark (Nürnberg), Kröllwitzbrücke (Halle), Görlitzer Stadtbrücke, Lausitzcenter (Hoyerswerda), Beuditz-Passage (Weißenfels), Anschlussstelle Augsburg-West. Ein paar Zeilen sind Rauschen (Hagen-Vorhalle ist ein Stadtteil, „Gastherme“ ein Gerät) – die Regex ist ein Wochenendprojekt, kein Parser.

Vorbehalt: „gefunden“ heißt nur, dass Nominatim unter dem Namen etwas Passendes liefert – ob es das richtige Objekt ist, hat niemand nachgesehen. Die Liste ist ein Sieb, keine Wahrheit.

Tolles Projekt, kommen noch weitere Städte hinzu. Zb Deggendorf

Diese Meldung nennt einen Autobahnparkplatz, wird aber im Parkhaus des Zoos in Hannover verortet. Lebensgefährlich verletzter Mann auf A2-Parkplatz gefunden — Polizeimeldung 10. August 2026 | POLIZEIKARTE .

Mit beidem ins Schwarze getroffen, danke dir – und beides ist behoben.

Das Präsidium hatte ich schlicht übersehen. Peinlich, denn es ist die wichtigere Quelle: In einer Stichprobe von 15 Meldungen stand dort siebenmal „Trier (ots)", bei der Direktion zweimal – die schreibt vor allem über Trier-Saarburg, Bernkastel-Wittlich und Birkenfeld. Jetzt laufen beide, Trier steht bei 14 Meldungen statt 8.

Bei der Karte war dein Hinweis mit dem Straßennamen der Schlüssel – da lagen nämlich gleich drei Fehler übereinander:

  1. Meine Straßenerkennung verlangte eine Straßenendung: straße, weg, platz und so weiter. „Hinter dem Zollamt" hat keine, also wurde der Name gar nicht erst nachgeschlagen. Jetzt sind Namen mit Vorwort und Artikel erlaubt („Am Yachthafen", „An der Feuerwache"), Floskeln wie „Am Montag" oder „An der Unfallstelle" weiterhin nicht. Allein das betraf 272 Meldungen.
  2. Das Skript für die Stadtteile fragte dieselbe Straßen-Funktion – die warf dann natürlich auch „Lechhausen" und „Innenstadt" raus. 6.913 von 7.027 Meldungen kamen als „Stadtteil nicht gefunden" zurück, obwohl Nominatim die alle kennt. Autsch.
  3. Und die ganze Nachverortung lief überhaupt nur, wenn ich sie von Hand angestoßen habe. Läuft jetzt nach jedem Import automatisch mit.

Unterm Strich: statt 23 % sind nur noch 16 % aller Meldungen ohne Position, Trier zeigt 12 von 14. Die letzten beiden sind eine Straße, die genau in Nominatims Rate-Limit gelaufen ist (davon habe ich heute reichlich produziert :sweat_smile:), und „Trier-Biewer", das die Ortssuche noch nicht findet – beide holt der nächste Tageslauf.

Wenn dir noch mehr auffällt: immer her damit, solche Hinweise sind Gold wert.

Erwischt – und das war symptomatisch. Die Meldung gab als Straße nur „Parkplatz" an (im vollen Ortstext stand „Parkplatz Bernser Kirchweg an der A 2"). Mein Geocoder sucht dann brav „Parkplatz, Hannover", Nominatim liefert irgendein Objekt dieses Namens, das liegt in der Stadt, besteht damit die Plausibilitätsprüfung – und bekommt die Genauigkeit „Straße". Zoo-Parkhaus.

Eine Sperrliste für solche Gattungsbegriffe gab es schon, aber sie war jünger als die Daten und hatte Löcher. Beides behoben:

  • Abgelehnt werden jetzt auch Autobahn- und Straßennummern („A 4" kam 107-mal vor, dazu „A 17", „A 13"), „Landstraße" (213), „Bundesstraße", „Staatsstraße", „Baustelle", „Tankstelle". Nicht auf der Liste: Marktplatz, Bahnhof, Hauptbahnhof – die gibt es pro Ort meist genau einmal, da stimmt der Treffer.
  • Im Bestand habe ich 2.306 Punkte gelöst, die aus so einem Namen stammten. Die Meldungen behalten den Text, verlieren aber die falsche Punktgenauigkeit und rutschen auf Stadtteil- oder Ortsebene. Deine Meldung steht jetzt auf „Standortgenauigkeit: Stadt", ohne Punkt auf der Karte.

Nebenbei ist mir dabei der umgekehrte Fehler aufgefallen: Echte Straßennamen wie „Straße des Friedens", „Allee der Kosmonauten", „Alt-Moabit" oder „Kamenzer Bogen" hat dieselbe Prüfung rausgeworfen, weil sie den Gattungsbegriff vorne tragen oder auf eine Endung, die ich nicht auf dem Schirm hatte. Weitere 599 Meldungen, die jetzt verortet werden können.

Der Anteil ohne Position steigt dadurch kurzfristig von 16 auf 18 % – das nehme ich gern in Kauf. Ein fehlender Punkt ist ehrlicher als ein falscher.

Cooles Projekt. Die Verortung hilft enorm bei anderen Projekten, insbesondere mit der Angabe der Standortgenauigkeit. Die GIS-Thematik ist bei den Pressemitteilungen von Polizei / Feuerwehr usw. nicht wirklich vorhanden.

Zwei Themen sind mir aufgefallen:

  1. Vollständigkeit
    Die Bayerische Polizei - Neueste Pressemeldungen
    Die Pressemitteilungen in Bayern bekommt man zentral. In Bayern fehlen in den Daten aber sehr große Bereiche. Im Grunde alles was außerhalb der Großstädte liegt, obwohl die Polizeipräsidien eigentlich alles nach oben spülen.

  2. Angebundene Services:
    So wie ich das lese werden die “offiziellen” Services von Nominatim und Overpass angefragt. Also https://nominatim.openstreetmap.org und https://overpass-api.de . Liege ich damit richtig? Ich hoffe nicht. Denn nur als Hinweis, es gab in den letzten Monaten enorm viele Projekte die angefangen haben die Services direkt anzusprechen, inklusive der Probleme und Aufwände die bei diesen Projekten aufgrund des Traffics und der Belastung dadurch enstehen. Wurde das Bedacht und ggf. das hosten eigener Systeme in Betracht gezogen? Zumindest für Overpass ist das nicht schwer (nominatim habe ich selbst noch nicht aufgesetzt).

Vielleicht schaffst du es auch ein kleines, lokal gehostetes KI-Modell zu benutzen, um die Ortsangaben aus dem Fließtext zu extrahieren?

Da könnte man bestimmt einiges hinkriegen, wenn man die Straßenlisten eines Bundeslandes hat, und dann dem Sprachmodell sagt “matche die Ortsangabe im Fließtext auf die beste Straße aus der Straßenliste”.

Danke fürs genaue Hinsehen — beides trifft.

Bayern: Stimmt, wir haben nur sechs der zehn Präsidien gelesen (München, Mittelfranken, Oberbayern Nord, Oberpfalz, Schwaben Nord, Unterfranken). Oberbayern Süd, Niederbayern, Oberfranken und Schwaben Süd/West fehlten komplett — das ist tatsächlich ein großer Teil des Landes. Seit heute sind alle zehn angebunden, der Rückbau über den Suchindex (24 Monate) läuft. Der zweite Teil deiner Beobachtung ist der größere: Ortsseiten legen wir erst an, wenn genug Material da ist, und in Bayern gab es die bisher fast nur in Unterfranken. Im Puffer liegen über 10.000 bayerische Meldungen aus rund 2.000 Ortsnamen, die auf Seiten warten. Das ist der nächste Schritt.

Nominatim/Overpass: Ja, wir haben die öffentlichen Instanzen genutzt — mit 1,1 s Abstand, identifizierendem User-Agent, Cache und gedeckelten Tagesportionen, aber ehrlicherweise mit Spitzen: normal 12–68 Anfragen am Tag, an einzelnen Tagen (Nachverortung, neue Quellen) über 1.000. Genau die stoßweisen Läufe, die du meinst. Dein Hinweis hat den Ausschlag gegeben, das jetzt zu lösen — allerdings nicht mit eigenen Overpass-/Nominatim-Servern (für unsere Mengen unverhältnismäßig), sondern mit dem, was wir schon haben: PostGIS. Aus dem Geofabrik-Auszug haben wir die benannten Straßen unserer 366 Städte in eine eigene Tabelle gezogen (277.709 Straßen, 173 MB). „Straße in Stadt" und Kreuzungen werden jetzt lokal beantwortet — das waren rund 90 % unserer Nominatim- und 100 % unserer Overpass-Anfragen. Nominatim bleibt nur noch für Ortsnamen außerhalb unserer Städte und die Adressen der Umkreissuche, ein paar am Tag. Gegen die bisherigen Nominatim-Positionen gemessen: 86 % Treffer, Median-Abstand rund 200 m. Der Auszug wird vierteljährlich erneuert.

Danke — der zweite Punkt war der wichtigere, und ohne dich hätte er noch eine Weile gewartet.

Frage am Rande: sitzt hier eigentlich noch ein Mensch mit hinter dem Bildschirm? Oder hat sich der Agent schon verselbstständigt​:thinking:

Straßenliste ja, seit gestern, je Stadt und deterministisch — ein Modell kommt erst für den Rest, den Levenshtein nicht löst, und dann als Schiedsrichter mit Kandidaten, nicht als Freitext-Rater.