Indoor Mapping & Wayfinding Automation
Engineering reference for indoor mapping: floor plan parsing, wayfinding graphs, beacon positioning, accessibility routing, and Python automation pipelines.
Turn DWG, SVG, PDF and IFC sources into routable,... Architecture & Standards
Coordinate frames, vertical topology, POI taxonomy,... Production Deployment
Schemas, CI gating, SDK integration, cache invalidation,... Indoor Positioning
Radio maps, BLE trilateration, floor-level detection and...
About this site
Indoor mapping is not a flavor of outdoor GIS. Sub-meter precision, vertical topology, semantic enrichment, and deterministic routing pipelines all change the engineering surface area. This site is a production-focused reference for the engineers building those systems day to day.
Inside you will find runbooks for parsing native CAD (DWG/DXF), BIM (IFC), SVG and PDF floor plans into validated, routable GeoJSON; the geometry repair stage that turns a clean parse into usable topology; coordinate-system patterns for multi-building campuses; Z-axis handling for lifts, escalators, mezzanines and split levels; POI taxonomy design that survives contact with facilities reality; routing-graph construction and the edge weighting that makes a route one a person would actually walk; the CI gating, schema validation, rollback and observability machinery that keeps deployed indoor maps trustworthy; and the beacon, Wi-Fi and barometric pipelines that place a moving user on that routing graph — on the right floor.
Every guide ships with annotated Python pulled from real pipelines — geopandas, shapely, networkx, ezdxf, ifcopenshell, rtree, pyproj — plus the validation, async batching, standards publication and SDK integration patterns that turn a one-off script into a service. The material targets facilities tech teams, GIS developers, indoor navigation teams, and Python automation builders.
Use the four entry points above to jump into a section, start from one of the paths below, or browse all 86 pages by topic. Every page is offline-cached as a PWA, so you can keep the references with you on a site walk.
Explore the guides
Automated Floor Plan Parsing & Vectorization
Turn DWG, SVG, PDF and IFC sources into routable, validated GeoJSON — parsing, geometry repair and BIM ingestion.
Open guideIndoor Mapping Architecture & Standards
Coordinate frames, vertical topology, POI taxonomy, routing-graph construction, and IMDF/IndoorGML interchange.
Open guideProduction-Ready Indoor Map Deployment
Schemas, CI gating, SDK integration, cache invalidation, rollback and observability for live wayfinding services.
Open guideIndoor Positioning: Beacon & WiFi Fingerprinting
Radio maps, BLE trilateration, floor-level detection and particle-filter fusion that place a user on the routing graph.
Open guideStart here
Four routes through the material, each following one building from a drawing to a live wayfinding service.
Ingest a building
From a drawing or a BIM model to validated geometry a router can use.
Make it routable
Turn rooms and openings into a graph, then into routes people follow.
Position the user
A blue dot that stays on the graph, and on the right floor.
Ship and keep it working
Gate it, publish it, watch it, and revert it when a publish goes wrong.
Every topic
The full topic index across all four sections.
Async Batch Processing Pipelines for Floor Plans
Build async batch pipelines that ingest hundreds of floor plans, delegate CPU-bound vectorization to process pools, and emit deterministic GeoJSON without OOM kills.
Read moreAttribute Mapping from Blueprints
Resolve blueprint text labels to room polygons and emit validated, schema-conformant indoor feature records using buffered spatial joins and confidence scoring in Python.
Read moreGeometry Cleanup & Topology Repair
Repair parsed floor-plan geometry before it reaches a routing graph: endpoint snapping, noding, polygonisation, OGC validity repair, sliver removal, and the tolerance choices that decide whether rooms merge.
Read moreIFC & BIM Model Ingestion
Turn an IFC building model into indoor map geometry with IfcOpenShell: reading the spatial hierarchy, sectioning IfcSpace solids into footprints, mapping storeys to levels, and the checks a BIM source still needs.
Read morePDF & Raster Floor Plan Extraction
Extract routable geometry from scanned PDF and raster floor plans: rasterization, deskew, denoise, scale calibration, and vector tracing into validated GeoJSON.
Read moreSVG/DWG Parsing Workflows
Parse DWG and SVG floor plans into one unit-aligned GeoJSON schema: ezdxf entity extraction, SVG transform flattening, Y-axis inversion, and topology validation in Python.
Read moreWall & Door Detection Algorithms
Detect walls and doors in raster and vector floor plans with Python: adaptive thresholding, contour vectorization, gap-based opening classification, and routing-graph validation.
Read moreAccessible & Multi-Profile Indoor Routing
Design accessible indoor routing: per-profile edge weights, step-free and assisted constraints, elevator preferences, and multi-profile graphs that share one topology.
Read moreFallback Routing Architectures for Indoor Navigation
Build deterministic degradation pathways for indoor routing graphs: topology reconciliation, vertical-transition fallback, and semantic POI routing in production Python.
Read moreIndoor Coordinate Reference Systems
Define, transform, and validate a facility-local indoor CRS in Python: metric scaling, orthogonal axes, surveyed origins, Z-datum alignment, and routing-ready coordinate output.
Read moreIndoor Map Data Standards
Publish indoor maps to interchange standards without adopting them internally: what IMDF, IndoorGML and CityGML each model, how to map an internal envelope onto them, and why conversion belongs at the boundary.
Read moreLevel Mapping & Z-Axis Logic
Normalize noisy CAD, BIM, and LiDAR elevations into discrete, routable indoor floor levels: clustering, Z-index assignment, and multi-level routing graph construction in production Python.
Read morePOI Taxonomy & Classification
Build a deterministic indoor POI classification pipeline in Python: a versioned taxonomy schema, pydantic validation, routing-weight assignment, spatial binding, and GeoJSON output ready for the routing graph.
Read moreIndoor Routing Graph Construction
Build a routable indoor graph from room polygons: medial-axis skeletons, door and junction node placement, vertical edges across levels, edge weighting, and the connectivity checks that prove the result is usable.
Read moreCache Invalidation Strategies for Indoor Maps
Cache invalidation for indoor maps: propagate floor plan updates across CDN, edge nodes, and SDKs without routing anomalies or wayfinding fallback failures.
Read moreCI Gating for Map Updates
Gate indoor map updates in CI: schema, routing-graph topology, and API-contract checks that block broken floor plans before they reach live wayfinding.
Read moreJSON Schema Design for Indoor Maps
Design a Draft 2020-12 JSON Schema that validates indoor map GeoJSON: coordinate frames, routing-graph topology, and CI-gated structural contracts before deployment.
Read moreRollback Triggers & Versioning for Indoor Mapping Pipelines
Content-addressed versioning, telemetry-driven rollback triggers, and atomic reverts for indoor map artifacts — with Python for SHA-256 manifests, threshold evaluation, and zero-downtime CDN swaps.
Read moreSDK Integration Patterns for Indoor Maps
Integrate indoor map SDKs in production: payload contracts, version-negotiated cache sync, native bridge hydration, and graceful routing fallback for live wayfinding.
Read moreVector Tile Serving for Indoor Maps
Serve indoor maps as vector tiles: per-floor layer separation, tiling validated GeoJSON, level filtering, tile caching keyed on topology hash, and client styling.
Read moreWayfinding API Observability
Instrument an indoor wayfinding service for the failures that matter: map-quality and route-quality signals a generic APM misses, OpenTelemetry spans, and the probes that catch a stranded wing before users do.
Read moreBLE Beacon Positioning & Trilateration
Position indoors with BLE beacons: RSSI path-loss ranging, least-squares trilateration, geometry pitfalls, and fusing beacon fixes into a stable indoor position.
Read moreIndoor Floor-Level Detection
Decide which storey a user is on: barometric altitude, its weather drift, radio anchoring, motion evidence from stairs and lifts, and the state machine that fuses them into a level a router can trust.
Read moreSnapping Positioning Fixes onto the Routing Graph
Bind noisy indoor position fixes to the routing graph: nearest-edge snapping, map-matching, off-graph rejection, and feeding a clean location to the wayfinding engine.
Read moreSensor Fusion & Particle Filters for Indoor Positioning
Fuse WiFi, BLE, and IMU signals with a particle filter for smooth indoor positioning: motion models, measurement updates, resampling, and wall-constraint likelihoods.
Read moreWiFi RSSI Fingerprinting & Radio Maps
Build and query WiFi RSSI fingerprint radio maps for indoor positioning in Python: survey grids, access-point feature vectors, kNN matching, and drift-resistant calibration.
Read more