a13n
AI 에이전트를 만들고 클라우드에서 실행합니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Eine interaktive Web-Anwendung zur Visualisierung von Routen mit mehreren Startpunkten zu einem Zielpunkt. Die Anwendung nutzt die GraphHopper Routing API, um Routen zu berechnen und bietet verschiedene Visualisierungs- und Analyseoptionen.
#zoom/lat/lng)edge_id (kein Geometrie-Matching), Farbcodierung über wählbare Colormaps (viridis, plasma, inferno, magma)sidewalk, bicycle_infra, max_speed …); Klick auf eine Linie zeigt die Infrastruktur des Abschnitts — Details in docs/INFRA_ANSICHT.mdcount) plus Aufschlüsselung nach Verkehrsmittel (count_foot, …) und Quelle (count_residential/count_transit); einzeln mit profile und startSource je Routetrips, trips_<modus> und Metadaten); Konzept in docs/ANALYSE_MODUS_KONZEPT.mdDie Anwendung ist verfügbar unter: https://vizsim.github.io/routing_bulk/
npm install # einmalig
npm run dev # Dev-Server mit Auto-Reload (Vite)
npm run build # Produktions-Build nach dist/
npm test # Unit-Tests (node --test)
Ohne eigenen Routing-Server: node tools/mock-graphhopper.mjs startet einen
Mock-GraphHopper auf Port 8989 (siehe docs/INFRA_ANSICHT.md).
Das Deployment auf GitHub Pages läuft automatisch: Jeder Push auf main baut
und deployt über die GitHub Action (.github/workflows/deploy.yml).
routing_bulk/
├── index.html # Einstiegspunkt (ein ES-Module-Script)
├── style.css # Stylesheet (Designtokens wie die Unfallkarte, Mobile-Query ≤ 640 px)
├── vite.config.js # Vite (base './', MapLibre-Worker)
├── package.json # Scripts + Dependencies (maplibre-gl, pmtiles, pbf)
├── .github/workflows/ # GitHub-Pages-Deployment (Vite-Build)
│
├── docs/ # Dokumentation
│ ├── routing_bulk_review.md # Review, Plan & Umsetzungsstand
│ ├── AGGREGATION_PROBLEM.md # (historisch) Geometrie-Aggregation
│ ├── INFRA_ANSICHT.md # Infrastruktur-Ansicht (v1)
│ └── ...
│
├── tests/ # Unit-Tests (node --test)
├── tools/ # mock-graphhopper.mjs (lokaler Test-Server)
│
└── src/
├── core/ # Konfiguration, State, Event-Bus, Utils
├── domain/ # Geo-Funktionen, Verteilungen, GraphHopper-API,
│ # infra.js: Infrastruktur-Klassen, Labels, Farben
├── services/ # Business-Logik
│ ├── route-service.js # Routen-Berechnung (Pool, Abbruch, Profile)
│ ├── demand-service.js # Nachfragemodell (Kapazität, unter-18, ÖPNV-Mix)
│ ├── population-service.js # Zensus-/PMTiles-Reader (Tiles direkt lesen)
│ ├── aggregation-service.js # exakte Kanten-Aggregation (edge_id)
│ ├── target-service.js # Zielpunkt-Verwaltung
│ └── export-service.js # GeoJSON-Export
├── visualization/ # MapLibre-Rendering
│ ├── map-renderer.js # Karte, Layer (Routen, Schulen, ÖPNV, Zensus), Kontextmenü
│ ├── route-renderer.js # Routen als GeoJSON-Sources (data-driven Styling)
│ ├── visualization.js # Orchestrierung, Marker (Start/Ziel)
│ ├── marker-manager.js # Ziel-Marker-Verwaltung
│ ├── histogram-renderer.js # Histogramm (Canvas)
│ └── colormap-utils.js # Colormap-Berechnungen
├── ui/ # Panel-Komponenten
│ ├── accordion.js # einklappbare Bereiche (mit localStorage)
│ ├── demand-selector.js # Bereich "Nachfragedetails"
│ ├── infra-controls.js # Färben nach / Modus / Merkmal + Legende
│ ├── segment-panel.js # Infopanel beim Klick auf ein Segment
│ ├── mobile-layout.js # Auf-/Zuklappen, Bottom-Sheet am Handy, Lupen-Suche, Fußzeile
│ ├── draw-bar.js / polygon-draw.js # Bereich zeichnen (Gebietsanalyse)
│ ├── info-hints.js # ⓘ-Tooltips (fixed, Viewport-Klemmung)
│ ├── targets-list.js / config-helpers.js / distribution-selector.js
│ └── colormap-selector.js / route-warning.js
├── handlers/ # Event-Handler (Routen berechnet/progressiv)
├── utils/ # Geocoder (Adresssuche)
└── app.js # Haupt-Orchestrierung
edge_id-Path-Details)Die Hauptkonfiguration befindet sich in src/core/config.js:
export const CONFIG = {
GH_ROUTE_URL: "https://ghroute.vizsim.de/route",
BASEMAP_STYLE_URL: "https://tiles.openfreemap.org/styles/positron",
PROFILE: "foot",
N: 10,
RADIUS_M: 2000,
ROUTE_CONCURRENCY: 12,
// PMTiles-Quellen: POPULATION_*, SCHOOLS_*, PLATFORMS_*
// Nachfragemodell: DEMAND_BASIS, DEMAND_TRANSIT_SHARE, DEMAND_TRANSIT_STOPS
};
Die Aggregation zählt exakt pro Kante des Straßengraphen: GraphHopper liefert
per Path Detail edge_id, welche Kanten jede Route benutzt — zwei Routen teilen
sich ein Segment genau dann, wenn sie dieselbe Kanten-ID haben. Kein
Geometrie-Matching, keine Toleranzen. Die früheren geometrischen Methoden und
ihr Grundproblem sind historisch dokumentiert in
docs/AGGREGATION_PROBLEM.md; Plan und
Umsetzungsstand in docs/routing_bulk_review.md.
Die Anwendung folgt einer modularen Architektur mit klarer Trennung von Concerns:
visualization.js: Orchestrierung und Marker (Start/Ziel)map-renderer.js: MapLibre-Karte, Sources/Layer, Kontextmenü, Legendenroute-renderer.js: Routen und Aggregation als GeoJSON-Featurescolormap-utils.js: Colormap-Berechnungenhistogram-renderer.js: Histogramm-Visualisierungmarker-manager.js: Ziel-Marker-VerwaltungDie Kommunikation zwischen Modulen erfolgt über einen Event-Bus (EventBus), was eine lose Kopplung und einfache Erweiterbarkeit ermöglicht.
Der Kern-Use-Case ist die Modellierung von Schulwegen. Zwei der drei dafür nötigen Bausteine sind inzwischen umgesetzt:
Nachfrage (Schülerinnen und Schüler) — ✅ umgesetzt:
Einwohner und Unter18 als PMTilesBushaltestellen und Fußverkehr — ✅ umgesetzt:
/plan); die Aggregation zählt
dort pro Linie und Ein-/Ausstiegspaar — siehe docs/routing_bulk_review.mdEinzugsbereiche der Schulen — offen:
| Bezirk | Format | Beschreibung | Link |
|---|---|---|---|
| Treptow-Köpenick | PDF Karte | Einschulungsbereiche als PDF-Karte verfügbar | Link |
| Neukölln | Digital(?) | Einschulungsbereiche in digitaler Form verfügbar, aber nicht öffentlich nutzbar (kein echtes WMS) | Link |
| Steglitz-Zehlendorf | PDF mit Karte und Adressen | Einschulungsbereiche als PDF mit Karte und Adressliste | Link |
| Mitte | PDF mit Karte und Adressliste | Einschulungsbereiche als PDF mit Karte und Adressliste | Link |
Die Integration dieser Datenquellen würde es ermöglichen:
Dieses Projekt steht unter der MIT-Lizenz. Siehe LICENSE für Details.