Dokumentation: Seiten auswählen

Nahversorgung: Luftlinien-Näherung (#564)

Aussage und unveränderte Berechnung

900 m Luftlinie als Näherung für 15 Minuten zu Fuß. Es wird keine Route berechnet; Umwege und Barrieren werden nicht berücksichtigt.

Der Präsenz-Indikator zählt Kategorien mit mindestens einer Einrichtung im Luftlinienradius. Er behauptet keine gemessene Gehstrecke oder tatsächliche Erreichbarkeit in 15 Minuten. Die fünf Kategorien, der Radius 900 m, die Ampelschwellen ≥4/5, 2–3/5, ≤1/5, der Pilotbereich und der OSM-/ODbL-Hinweis bleiben unverändert (#463). Es gibt keine Routingimplementation, Neubewertung oder zusätzliche Quellen-/Produktfreigabe.

Gemeinsame Ausgabe und historische Reports

lib/report/poi-display.ts enthält den gemeinsamen Hinweis und die reine Darstellungsprojektion für ReportSections und den öffentlichen PDF-Renderer. Neue Ergebnisse erhalten den präzisierten Hinweis bereits beim Erstellen. Steckbrief, Ergebniszeile und PDF-Kategorieliste benennen den Luftlinienradius.

Die Projektion ersetzt ausschließlich den vollständig bekannten alten Hinweis und bei erkanntem 900-m-Hinweis die sechs bekannten Ampelerklärungstexte für 0–5 Kategorien. Sie korrigiert auch den identischen historischen Disclaimer-Baustein im PDF. Individuelle, unbekannte oder fehlende Texte bleiben erhalten; fehlende POI-Blöcke werden nicht erzeugt. Da kein Radiusfeld gespeichert ist, nennen Web, Steckbrief und PDF 900 m nur bei exakter Übereinstimmung mit dem bekannten alten oder aktuellen 900-m-Hinweis. Sonst steht dort neutral „laut gespeichertem Indikator“; auch ein bekannter Ampelsatz wird bei fremdem Hinweis nicht auf 900 m umgeschrieben. Das gilt insbesondere für den historischen 1200-m-/Sechs-Kategorien-Vertrag. Die Kategorienliste und ihre Anzahl stammen aus dem Snapshot, einschließlich der historischen sechsten ÖV-Kategorie. Score und Ampel werden nicht neu berechnet. Score, Ampel, Zähler, Quellenstand und übrige Snapshotdaten bleiben unverändert. Die Projektion ist idempotent und schreibt nichts in die Datenbank. Historische JSON-API-/Exportantworten behalten ihren gespeicherten Wortlaut. Fehlende/null POI-Hinweise und POI-Ampelerklärungen werden ausschließlich an ihren beiden PDF-Textstellen als leer gerendert, damit ein synthetischer Altbericht ohne diesen Text keinen PDF-Fehler verursacht. Das belegt keine entsprechende Produktionsdatenlage.

Reproduktion und Prüfung

  • npx vitest run tests/unit/lib/geo/poi-dichte.test.ts tests/unit/lib/report/poi-display.test.ts: Rot-/Grün-Vertrag für neue Lookup-Ergebnisse, historische Web-Ausgabe, PDF-Rechtshinweis, unveränderte Snapshots, unbekannte/fehlende Texte und Idempotenz.
  • npx tsx scripts/verify-poi-report.ts: synthetische historische/aktuelle 900-m-PDFs sowie historische und individuelle 1200-m-Fälle sowie fehlende POI-Texte, beide Hinweise, Score/Quellenstand, SHA256 vor/nach, Seitengeometrie und Raster aller Seiten. Raster müssen zusätzlich visuell abgenommen werden.
  • npm run test:e2e:permalink:build: echter gebauter Permalink und echter PDF-Endpunkt mit ausschließlich synthetischer Testtransportantwort, 320/390/1440 px, Tastatur und Touch; zusätzlich historischer 1200-m-Vertrag und fehlende POI-Texte bei 320/1440 px. Keine Datenbankverbindung und keine Reporterstellung.

Abnahmestand

Abgeschlossen am 13. September 2026: PR #569 (Merge-Commit 28e34ff7284059c5787b728a4048eac0650021eb) ist gemergt, das Produktionsdeployment dpl_4AcQTv65MNneW5fPVhAvJcDFWNux war READY, und der Produktions-Readback an einem bestehenden historischen POI-Report zeigte Web und PDF mit dem präzisierten Hinweis bei unverändertem Score, unveränderter Ampel und unverändertem Quellenstand (vollständiger JSON-Hash vor und nach den Liveprüfungen identisch). Die Bindung steht im Abschlusskommentar von #564. Für vorhandene öffentliche Referenzen werden nur sichere Ausschnitte und Hashes veröffentlicht; Report-IDs und Permalinks sind Bearer-Capabilities. Produktionsdaten blieben unverändert.

PDF/UA #333, PV-Fachgate #291 und NÖGIS #413 werden damit nicht geschlossen.