Atlasr is a truly open-source and free map browser.
Atlasr is a truly open-source and free map browser. The goal is threefold:
A map architecture is composed of the following components:
.mbtiles
for instance. Each region of a
planet is named a tile. A tile is defined by a longitude, a
latitude, and a zoom (an altitude scale),Obviously, each component comes with thousands of details and constraints. The previous list is a high overview of how it works.
The open-source map ecosystem is mature. Many projects already exist to address one component of the map architecture. However, a mainstream tool that combined all these projects, based on 100% open-source and free data, is still missing. Atlasr aims to be the response to this problem.
The quality must be comparable with Google Maps or Apple Maps:
The main technologies are the following: Rust for the server, Elm for the client, and PostgreSQL/SQLite for the databases.
The actual roadmap is the following:
source/api/tile/
]:
.mbtiles
,source/map-style
]:
source/api/geocode
]:
source/api/route/
]:
source/server/
]:
source/client
]:
Current focus: The current hard work is to provide all map components as local and standalone instances. Everything has been addressed except the fonts in the map renderer (yet).
Next focus: Replace the top 10 features on Google Maps.
Map renderer: The tiles, the style, the icons, everything comes from Atlasr. No external service is used.
Geocoding and Routing: Atlasr is able to geoencode 2 postal addresses, and find a route between the two:
just
is required to run all the commands. Run just --list
to get an overview of all the commands.
Tile server:
$ # Install API tile server.
$ just install-api-tile
$ # Run the tile server.
$ just run-api-tile
Geocoding:
$ # Download the data, install the indexer, and install the search engine.
$ just install-api-geocode
$ # Run the geocoding server.
$ just run-api-geocode-searcher
Routing:
$ # Install the geocoding server.
$ just install-api-route
$ # Run the geocoding server.
$ just run-api-route
Client/Web UI:
$ # Install the HTTP server for the client.
$ just install-server
$ # Run the HTTP server for the client.
$ just run-server
$ # Install the Web UI, its dependencies, and prepare the frontend.
$ just install-client
$ # Open the client.
$ just open
Enjoy!
The entire project is under the BSD-3-Clause license. Please read the
LICENSE
file.