This repository contains tools and algorithms for building indoor mapping systems and implementing efficient pathfinding for indoor navigation. The system processes geospatial data and SVG floor plans to create navigable maps with pathfinding capabilities.
- Geospatial Data Processing: Convert between SVG coordinates and real-world geographic coordinates
- Pathfinding Algorithms: Implementations of efficient indoor navigation algorithms
- Map Visualization: Tools to visualize indoor maps and navigation paths
- Data Conversion: Utilities to transform between different geospatial formats
pip install -r requirements.txtTo convert an SVG floor plan to georeferenced GeoJSON:
python georeference.py floorplan.svg control_points.geojson -o output.geojsonCreate a GeoJSON file with reference points (example control_points.geojson):
{
"type": "FeatureCollection",
"features": [
{"type": "Feature", "geometry": {"type": "Point", "coordinates": [-8.66044502, 40.63310366]}, "properties": {"id":0}},
{"type": "Feature", "geometry": {"type": "Point", "coordinates": [-8.66029085, 40.63306602]}, "properties": {"id":0}},
{"type": "Feature", "geometry": {"type": "Point", "coordinates": [-8.65977934, 40.63320307]}, "properties": {"id":0}},
{"type": "Feature", "geometry": {"type": "Point", "coordinates": [-8.65986813, 40.63325325]}, "properties": {"id":0}}
]
}-
SVG Floor Plans:
- Should only contain
<line>and<path>elements
- Should only contain
-
Control Points GeoJSON:
- Points that establish the geographic correspondence
- Format:
{ "type": "Feature", "geometry": {"type": "Point", "coordinates": [longitude, latitude]}, "properties": {"id": 0} }
- GeoJSON with:
- LineString features for walls/paths
- Metadata about the transformation