But even though Google Maps is free, there’s a price all users have to pay, and that price is your personal data. By default, Google Maps records your every move and sells the recorded data to advertisers, who are hungry to know where you shop, how long you stay there, and how often you return.
If you’re not keen on sharing your location data with third-parties, self-hosted mapping software is a great alternative to web mapping services such as Google Maps. We’ve picked top five best self-hosted mapping software solutions and created a guide on how to install the most popular one of them.
GraphHopper is a fast and memory efficient Java routing engine that can run on a server or offline on mobile devices and desktop computers. It uses data from OpenStreetMap, a collaborative project to create a free editable map of the world, but it can also import data from other sources.
Besides point-to-point routing, GraphHopper is also able to perform sophisticated route optimization and solve the traveling salesman problem. Businesses that ship goods to customers can use GraphHopper to assign routes to their vehicles so that total transportation costs are minimized.
GraphHopper is licensed under the Apache License 2.0, which allows everyone to customize and integrate it in free or commercial products. Users who would like to use GraphHopper’s outing services within minutes can take advantage of the GraphHopper Directions API, which can effortlessly integrate A-to-B route planning, route optimization, isochrone calculations, and more in virtually any application.
With Mapzen Turn-by-Turn, you can easily add routing to your app to provide its users with flexible routing options and narrative guidance. This mapping software is based on road network data from OpenStreetMap and public transit feeds from Transitland, and it supports many different modes of transportation, including foot, bike, car, bus, train, or even ferry.
Mapzen Turn-by-Turn comes with several companion mobility services to help you turn navigation data into useful insights. The services include the Mapzen Map Matching, which corrects imprecise GPS data by bringing GPS points to nearby roads and paths, Time-Distance Matrix, which efficiently calculates travel times and distances between many places with just one API call, and Isochrone, which provides insight into travel at an individual level and en masse.
uMap is a useful mapping software built on top of Django and Leaflet that lets you create maps with OpenStreetMap layers in less than a minute and embed them in your site. uMap allows you to add POIs, manage map options, batch import geostructured data, and more.
uMap’s developers have created an extremely useful series of screencasts that explain the ins and outs of this mapping software and make it very easy for beginners to make maps with uMap. There’s also a demo version on the official website of the software, and we encourage you to give it a go to see what uMap is all about.
Since 2007, Google-branded vehicles have been traveling all over the world, collecting panoramic pictures of streets for Google Street View, a technology featured in Google Maps and Google Earth that provides panoramic views from positions along many streets in the world. Unfortunately, the wealth of photographs collected by Google isn’t freely available, and it’s up to Google to decide who can access it and who can’t.
The goal of OpenStreetCam is to provide a free, crowd-sourced alternative to Google Street View. All collected imagery, which is typically taken by independent contributors using smartphones, is published under a CC-BY-SA license and most of the project’s code is open source. OpenStreetCam can recognize street signs in real time while capturing imagery, and it supports using an ODB-II dongle plugged into the vehicle in addition to GPS to improve the accuracy of the positions of images.
KeplerJs is a relatively recent open source geosocial solution that allows users to create and share their favorite places and communicate with others in real-time. KeplerJs takes data from OpenStreetMap, Geonames, and several other sources, and it can also import custom data in order to create a new layer on top of existing data.
While KeplerJS is still in its infancy, it’s starting to gain traction and attract enthusiastic open source developers who want to make it better and share their favorite places and join discussions in real-time.
How to Install and Configure GraphHopper
Because GraphHopper is written in Java, a programming language intended to let application developers write code once and run it anywhere, installing this mapping software couldn’t be easier.
From there, it’s just a matter of unpacking everything into a single directory and starting the GraphHopper Web Server with the following command:
java -jar *.jar jetty.resourcebase=webapp config=config-example.properties osmreader.osm=berlin-latest.osm.pbf
You should then be able to go to http://localhost:8989/ and see the OSM map you’ve downloaded earlier.
Keep in mind that the first start of your GraphHopper Web Server may take a while, but subsequent starts should be a lot quicker.
Running your own mapping server may sound daunting at first, but modern open source mapping software solutions make it very simple. While it’s very likely that you will keep using Google Maps or some other popular mapping service for day-to-day travel, knowing how to set up a mapping server may help you secure a great job or amaze your college professor.