https://github.com/dilumaluthge/lightosm.jl
A Julia package for downloading and analysing geospatial data from OpenStreetMap APIs.
https://github.com/dilumaluthge/lightosm.jl
astar dijkstra geospatial julia kdtree nominatim openstreetmap overpass rtree
Last synced: about 2 months ago
JSON representation
A Julia package for downloading and analysing geospatial data from OpenStreetMap APIs.
- Host: GitHub
- URL: https://github.com/dilumaluthge/lightosm.jl
- Owner: DilumAluthge
- License: other
- Created: 2020-09-15T03:44:30.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2026-04-10T00:01:06.000Z (2 months ago)
- Last Synced: 2026-04-10T02:11:57.020Z (2 months ago)
- Topics: astar, dijkstra, geospatial, julia, kdtree, nominatim, openstreetmap, overpass, rtree
- Language: Julia
- Homepage: https://aluthge.com/LightOSM.jl/
- Size: 4.31 MB
- Stars: 52
- Watchers: 3
- Forks: 19
- Open Issues: 32
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# LightOSM.jl
[](https://deloitteoptimalreality.github.io/LightOSM.jl/docs/)
[](https://deloitteoptimalreality.github.io/LightOSM.jl/notebooks/tutorial)
[](https://github.com/DeloitteOptimalReality/LightOSM.jl/actions?query=workflow%3ACI+branch%3Amaster)
[](https://codecov.io/gh/DeloitteOptimalReality/LightOSM.jl)
**[`LightOSM.jl`](https://github.com/DeloitteOptimalReality/LightOSM.jl)** is **[Julia](https://julialang.org/)** package for downloading and analysing geospatial data from **[OpenStreetMap](https://wiki.openstreetmap.org/wiki/Main_Page)** APIs (**[Nominatim](https://nominatim.openstreetmap.org/ui/search.html)** and **[Overpass](https://overpass-api.de)**), such as nodes, ways, relations and building polygons.
## Acknowledgements
**[`LightOSM.jl`](https://github.com/DeloitteOptimalReality/LightOSM.jl)** is inspired by the Python package **[OSMnx](https://github.com/gboeing/osmnx)** for its interface and Overpass query logic. Graph analysis algorithms (connected components and shortest path) are based on **[LightGraphs.jl](https://github.com/JuliaGraphs/LightGraphs.jl)** implementation, but adapted to account for turn restrictions and improve runtime performance.
Another honourable mention goes to an existing Julia package **[OpenStreetMapX.jl](https://github.com/pszufe/OpenStreetMapX.jl)** as many learnings were taken to improve parsing of raw OpenStreetMap data.
## Key Features
- `Search`, `download` and `save` OpenSteetMap data in .osm, .xml or .json, using a place name, centroid point or bounding box
- Parse OpenStreetMap `transport network` data such as motorway, cycleway or walkway
- Parse OpenStreetMap `buildings` data into a format consistent with the **[GeoJSON](https://tools.ietf.org/html/rfc7946)** standard, allowing for visualisation with libraries such as **[deck.gl](https://github.com/visgl/deck.gl)**
- Calculate `shortest path` between two nodes using the Dijkstra or A\* algorithm (based on LightGraphs.jl, but adapted for better performance and use cases such as `turn resrictions`)
- Find `nearest nodes` from a query point using a K-D Tree data structure (implemented using **[NearestNeighbors.jl](https://github.com/KristofferC/NearestNeighbors.jl)**)
## Documentation
Documentation for the API can be found **[here](https://deloitteoptimalreality.github.io/LightOSM.jl/docs)**.
## Usage
A comprehensive tutorial can be found found **[here](https://deloitteoptimalreality.github.io/LightOSM.jl/notebooks/tutorial)**.
## Benchmarks
Benchmark comparison for shortest path algorithms can be found **[here](https://deloitteoptimalreality.github.io/LightOSM.jl/notebooks/benchmarks)**.