All Projects → atlasr-org → Atlasr

atlasr-org / Atlasr

Licence: other
Atlasr is a truly open-source and free map browser.

Programming Languages

rust
11053 projects
elm
856 projects

Projects that are alternatives of or similar to Atlasr

Vector Datasource
Tilezen vector tile service - OpenStreetMap data in several formats
Stars: ✭ 427 (+117.86%)
Mutual labels:  tile, map, openstreetmap
Libosmscout
Libosmscout is a C++ library for offline map rendering, routing and location lookup based on OpenStreetMap data
Stars: ✭ 159 (-18.88%)
Mutual labels:  routing, map, openstreetmap
Simple Web Server
A very simple, fast, multithreaded, platform independent HTTP and HTTPS server and client library implemented using C++11 and Boost.Asio. Created to be an easy way to make REST resources available from C++ applications.
Stars: ✭ 2,261 (+1053.57%)
Mutual labels:  server, client
Router
⚡️ A lightning fast HTTP router
Stars: ✭ 158 (-19.39%)
Mutual labels:  server, routing
Qtswissarmyknife
QSAK (Qt Swiss Army Knife) is a multi-functional, cross-platform debugging tool based on Qt.
Stars: ✭ 196 (+0%)
Mutual labels:  server, client
Openrailwaymap
An OpenStreetMap-based project for creating a map of the world's railway infrastructure.
Stars: ✭ 150 (-23.47%)
Mutual labels:  map, openstreetmap
Titiler
A dynamic Web Map tile server
Stars: ✭ 153 (-21.94%)
Mutual labels:  tile, server
Mapboxstatic.swift
Static map snapshots with overlays in Swift or Objective-C on iOS, macOS, tvOS, and watchOS
Stars: ✭ 162 (-17.35%)
Mutual labels:  map, openstreetmap
Mapbox Gl Native Android
Interactive, thoroughly customizable maps in native Android powered by vector tiles and OpenGL
Stars: ✭ 135 (-31.12%)
Mutual labels:  map, openstreetmap
Mimirsbrunn
Geocoding and reverse-geocoding (with OSM data)
Stars: ✭ 165 (-15.82%)
Mutual labels:  geocoding, openstreetmap
Unity Fastpacedmultiplayer
Features a Networking Framework to be used on top of Unity Networking, in order to implement an Authoritative Server with Lag Compensation, Client-Side Prediction/Server Reconciliation and Entity Interpolation
Stars: ✭ 162 (-17.35%)
Mutual labels:  server, client
Aphotomanager
Manage local photos on Android: gallery, geotag with photomap, privacy, tags, find, sort, view, copy, send, ... .
Stars: ✭ 164 (-16.33%)
Mutual labels:  map, openstreetmap
Rolisteam
Rolisteam is a virtual tabletop. It helps you to manage tabletop role playing games with remote friends/players. It provides many features to share maps, pictures, dice roller, manage background music and much more. The main git repository is available here: [https://invent.kde.org/kde/rolisteam].
Stars: ✭ 151 (-22.96%)
Mutual labels:  server, client
Ether.network
https://github.com/Eastrall/Sylver
Stars: ✭ 147 (-25%)
Mutual labels:  server, client
Gophertunnel
Toolbox for Minecraft software written in Go
Stars: ✭ 156 (-20.41%)
Mutual labels:  server, client
Nominatim
Open Source search based on OpenStreetMap data
Stars: ✭ 1,896 (+867.35%)
Mutual labels:  geocoding, openstreetmap
Quarry
Python library that implements the Minecraft network protocol and data types
Stars: ✭ 182 (-7.14%)
Mutual labels:  server, client
Spreadsheet server
A python server harnessing the calculational ability of LibreOffice Calc (thanks to 'pyoo'). It provides 'instant' access to the cell ranges of a set of spreadsheets.
Stars: ✭ 132 (-32.65%)
Mutual labels:  server, client
Jstp
Fast RPC for browser and Node.js based on TCP, WebSocket, and MDSF
Stars: ✭ 132 (-32.65%)
Mutual labels:  server, client
Simplenet
An easy-to-use, event-driven, asynchronous network application framework compiled with Java 11.
Stars: ✭ 164 (-16.33%)
Mutual labels:  server, client

🌍 Atlasr

Atlasr is a truly open-source and free map browser. The goal is threefold:

  1. Learn about all the layers and components that make a map,
  2. Provide a ready-to-use set of tools to build a 100% open-source, free, and standalone map browser,
  3. Provide an alternative service to the famous Google Maps or Apple Maps, with no ads, with respect to user privacy, with 100% open-source and free data, and the top 10 features of Google Maps.

A map architecture is composed of the following components:

  • Map data, A giant database containing all information about roads, trails, cafés, railway stations, buildings etc. The biggest major project is OpenStreetMap,
  • Tile server, A program that, given a specific region, reads the map database and compiles those information in a certain format like .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),
  • Map renderer, A program that, given a set of tiles, renders/draws a map, so each roads, buildings etc. finally come alive at this step. A map renderer requires at least the following components:
    • Tile decoder to decode the tiles received from the tile server,
    • Styles to know how to draw the data from the map (e.g. “roads must be blue with a white strike”),
    • Fonts to render texts,
    • Icons to represent some places with an image (like hospitals, police stations, parcs etc.).
  • Geocoding, A program that can find the longitude and the latitude of a labellised element on earth, like a postal address, a building name, or a river name for examples,
  • Routing, A program that is able to find a path/route between one or many points (longitude + latitude) given some constraints (like the vehicule type, the road preference etc.). A route preferably comes with descriptions, like “Turn right in 100m”, “Follow A10 for 7km” etc.

Obviously, each component comes with thousands of details and constraints. The previous list is a high overview of how it works.

Goals

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:

  • Smooth and fast experience,
  • Reliable data,
  • Beautiful design for the map and the UI.

Roadmap

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:

  • Map data, all data comes from OpenStreetMap,
  • Tile server [source/api/tile/]:
    • [x] Vector tiles are pre-computed by OpenMapTiles, which relies on OpenStreetMap.
    • [x] Format is .mbtiles,
    • [x] Solid and robust tile server.
  • Map renderer [source/map-style]:
    • [x] Use Mapbox GL JS to render the map,
    • [x] Elm ports to Mapbox GL (JavaScript) for the Web UI,
    • [x] Use OSM Liberty for the style, forked to remove the dependencies to external services, and to use only “local” data,
    • [x] Icons/sprites,
    • [ ] Fonts.
  • Geocoding [source/api/geocode]:
    • [x] Data are pre-computed by OSM Names, which relies on OpenStreetMap,
    • [x] Transform the data to build an index for the search engine,
    • [x] Custom and fast search engine to query the index, build with Tantivy,
    • [x] Solid and robust server.
  • Routing [source/api/route/]:
    • [x] Delegate all the works to GraphHopper, only use the open-source API. API to use:
      • [x] Routing API,
      • [ ] Isochrone API.
  • HTTP server [source/server/]:
    • [x] Fast and robust HTTP server between the client and all the API.
  • Client/Web UI [source/client]:
    • [x] Mobile-first,
    • [x] Smooth and fast,
    • [x] Search one or many positions (geocoding),
    • [x] Search a route (routing),
    • [ ] Search a route with constraints,
    • [ ] Enhance data with Wikipedia (photos, descriptions, metadata etc.),
    • [ ] All links are sharable,
    • More features.

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.

Screenshots

  • Map renderer: The tiles, the style, the icons, everything comes from Atlasr. No external service is used.

    Map

  • Geocoding and Routing: Atlasr is able to geoencode 2 postal addresses, and find a route between the two:

    Geocoding and routing

Usages/Installations

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!

License

The entire project is under the BSD-3-Clause license. Please read the LICENSE file.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].