Indoor Mapping & Wayfinding Automation

Engineering reference for indoor mapping: floor plan parsing, wayfinding graphs, beacon positioning, accessibility routing, and Python automation pipelines.

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

Start 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.

  1. Parse DWG with ezdxf
  2. Or ingest an IFC model
  3. Repair the geometry
  4. Detect walls and doors

Make it routable

Turn rooms and openings into a graph, then into routes people follow.

  1. Build the routing graph
  2. Weight edges by turns and levels
  3. Add accessibility profiles
  4. Degrade gracefully when it fails

Position the user

A blue dot that stays on the graph, and on the right floor.

  1. Build a WiFi radio map
  2. Place BLE beacons
  3. Detect the floor
  4. Snap onto the routing graph

Ship and keep it working

Gate it, publish it, watch it, and revert it when a publish goes wrong.

  1. Gate map changes in CI
  2. Serve level-filtered tiles
  3. Publish to IMDF or IndoorGML
  4. Observe and roll back

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 more

Attribute 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 more

Geometry 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 more

IFC & 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 more

PDF & 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 more

SVG/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 more

Wall & 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 more

Accessible & 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 more

Fallback 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 more

Indoor 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 more

Indoor 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 more

Level 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 more

POI 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 more

Indoor 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 more

Cache 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 more

CI 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 more

JSON 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 more

Rollback 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 more

SDK 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 more

Vector 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 more

Wayfinding 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 more

BLE 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 more

Indoor 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 more

Snapping 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 more

Sensor 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 more

WiFi 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