Developing a location-based app requires a plethora of tools to cover various areas of operational significance: ranging from website and app analytics, through mapping and GIS solutions, to process automation and back-office management. You can cover all of the above using a rich offer of available SaaS software, or you can decide to save your budget on recurring monthly payments and invest in open source instead.
The latter can often fully cover your needs without the involvement in custom development, although there are also a number of situations where that will be unavoidable.
The pros and cons of going open source is a vast topic in itself and requires a deep analysis of your specific situation, which we can cover in the future, should you be interested in us doing so.
Today, though, I’ll tell you about the top 10 open-source tools you definitely should consider when building your own location-based app.
OpenStreetMap – raw location data source of your choice
OpenStreetMap. Something I already wrote about when comparing the best map APIs from features perspective (psst, follow the link, if you’d like to learn more).
OSM is the world’s biggest community-driven geographic database. The project started in 2004 (before Google Maps) and was focused on mapping the UK. Nearly two decades later, it serves as a source of geodata not only to its community, but also to some of the most well-known companies in the world, eg Apple, Facebook, Amazon, Uber, Snapchat, Mapbox and more.
At the first glance, it may seem like OpenStreetMap doesn’t provide much – only raw geodata. No familiar map interface, no navigation, no geocoding. And while that is something a regular user needs, a location-based product is worthless without that data. You can develop your own UI, geocoding service or even custom data visualizations with relative ease, but there’s no way you’re going out there to map the entire world, especially if you’re just starting out.
While, yes, you can use other map API providers, their pricing can take a toll on your available capital, especially if you scale rapidly. So all in all, OSM is definitely a must-to-consider.
QGIS – perfect for geospatial data processing
QGIS – yet another world’s leading software on our list. As the name implies, it’s a geographic information system (GIS) – an application that enables viewing, editing, printing, and analysis of geospatial data. The data itself can come from any source, including aforementioned OpenStreetMap, both from .osm XML files or via appropriate APIs, dxf MapInfo, PostGIS and other industry-standard formats.
Being an open-source software solution, it means you also gain access to an international community of users who enhance QGIS’s functionalities through 3rd-party plugins. That might not even be needed, considering QGIS out-of-the-box supports:
- raster layers processing;
- vector layers processing;
- mesh layers processing;
- can georeference raster images;
- can perform geoprocessing in the likes of the tools found in ArcGIS;
- can geocode;
- and more.
It can also display multiple data layers, which comes in handy when you want to compare or mash together information from different sources.
Last but not least, you’re free to modify and develop custom modules, should such a need arise, without having to rely only on those features paid GIS solutions offer.
Matomo gives your location-based apps complete control of target audience data
Matomo, formerly known as Piwik, is a privacy-driven open-source web analytics platform. You are in full control over the gathered data and can even host it on-premise without using Matomo cloud services.
What’s important to notice is that, contrary to your most-probable initial impression, Matomo doesn’t compete with Google Analytics only. It also offers heat mapping and sessions recording capabilities like the ones you can find in Hotjar or its alternatives (the full comparison tables can be found here and here respectively). If you decide to switch from GA, Matomo supports historical data import, so you won’t have to sacrifice what has already been collected.
And once again, as it goes with open source, you are free to modify and extend Matomo’s functionalities in accordance with your business needs.
AdminJS speeds up your location-based app development process
Every location-based app requires an admin panel. AdminJS is the world’s most popular auto-generated admin panel for Node.js applications. Unlike some of its competitors, it is a database-agnostic solution, which means it doesn’t impose any particular database schema in order to work. It serves as a plugin that uses various ORM/ODM adapters to connect to whatever database you are using.
Installed in a matter of hours, it provides you and your team with CRUD operations and can be customized to operate as a back-office system even for your non-technical employees.
We’ve used AdminJS to develop a mobility startup – Bussr – and integrated the required location-based services within its administration panel, which provided their Operations Department with the ability to assign daily bus routes directly on the map, instead of manually uploading .CSV files with geo coordinates into the database.
Customizability of AdminJS offers companies freedom to develop their own modules that support their particular needs, be it for e-commerce, FoodTech or location-based products.
GraphHopper – crucial component of many location based apps
GraphHopper is one of those libraries that make open source as powerful as it is. GH is a fast and memory-efficient routing engine that allows you to calculate the time, distance and turn-by-turn instructions, amongst other attributes, for a route between two or more geographical points.
Based on OpenStreetMap and Shuttle Radar Topography Mission data (you can also connect your own sources if the above are not useful), GraphHopper can also use different routing algorithms, like Dijkstra, A* and its bidirectional versions. More so, to optimize the speed of their routing engine for long routing paths (continental size) and avoid heuristic approaches, GraphHopper uses contraction hierarchies by default.
Use cases for this can be found in on-demand applications, most delivery applications, geolocation tracking apps, public transport platforms, taxi apps or logistics companies.
Camunda – delegating tedious tasks to machines
Camunda is an open-source workflow and decision automation platform that utilizes both BPMN and DMN standard-compliant workflow engines.
To put it simply, process automation allows you to automate (obviously) all the tedious processes that take too much time to execute manually and can be performed without human intervention.
Document processing is a good example. We’ve recently completed the development of Camunda-based PoC (you can view the case study here) for Alphabet – one of the largest car fleet management services, operating in 31 countries with a fleet of over 720 000 cars.
Here’s the process automated by the prototype:
As you can see, it eliminates a variety of manual tasks and allows your employees to focus on other, more important tasks.
It might be an overkill at the very beginning of your startup journey, but as your business grows, Camunda becomes more and more attention-worthy.
Cesium enables 3D-capabilities within your location-based application
Cesium in an open-source JavaScript library for 3D geospatial visualization. It is designed to create interactive web and mobile apps using 3D globes and maps with robust interoperability and support for massive datasets in mind.
Using a high-precision WGS84 globe, you can visualize and analyse data streamed from a source of your choice, including their commercial Cesium ion platform that transforms your terrain, imagery, and other location data into optimized, ready-to-stream 3D Tiles content.
Eventrix enhances performance of your location-based applications
Eventrix is our own open-source, predictable and highly efficient state management library for React applications. Developed for our internal needs when working with our enterprise partners at Trans.eu – one of the largest logistics companies in Europe and Asia – it solves the issue of sharing information between various components of our applications as well as their direct communication.
Being an alternative to Redux, Eventrix shows amazing results when it comes to performance and resources usage:
- up to 50% reduction in CPU usage;
- up to 100% higher FPS;
- up to 51% smaller JS Heap size; and
- up to 5x faster action time.
Eventrix powers the Trans logistics platform and handles over 62,000 concurrent daily users with more than 13,000 state changes per second and 300 messages sent also every second (here's a case study).
As you can see, it can withstand enormous load and thus is perfect not only for small projects, but also enterprise-scale location-based apps.
Mapnik – toolkit for mapping apps
Mapnik is an open-source mapping toolkit for geospatial visualization and processing. To put it simply, it is a collection of geographic data like maps, layers, features, and geometries. Its OS-agnostic approach means it can be implemented on any server environment.
Using community-developed plugins, Mapnik supports industry-standard formats to read both vector and raster datasets as well as custom Shapefile, PostGIS and GeoTIFF formats. Last but not least, it can render OSM data into custom maps.
Which it does even for the OpenStreetMap.org default layer. Mapnik is also used by other location services, eg Mapbox, CartoDB or MapQuest.
Mapbox GL powers interactive mapping apps
And to end (I didn’t mean to use homophones, I swear) today’s list, let’s take a look at a phenomenal JavaScript library for creating interactive and highly-customizable maps in the browser using vector map tiles and WebGL – Mapbox GL.
Developed by Mapbox, Mapbox GL is a client-side tool that allows you to build a mobile or web app using modern mapping technologies.
Use cases include, but not limited to:
- visualizing and animating geodata in both 2D and 3D;
- adding a georeferenced images to your maps;
- processing of live real-time geodata (eg fitness trackers, travel apps, traffic jams notification system, weather apps and more);
- dynamically displaying and styling custom data on a given map; or
- programmatically adding custom markers and pop-ups to your maps.
The variety of examples is huge, so I recommend you to have a look at their official examples page.
Mapbox GL can definitely become of use during your location based app development process, especially if you decide to provide your users with uniquely styled maps.
Recap of tools for geolocation app development
To conclude, here’s a short cheat sheet of what’s good for what.
- OpenStreetMap – offers the largest source of raw geographic data;
- QGIS – one of the best, if not the best, open-source GIS solutions available on the market and can be an alternative to paid products in the likes of ArcGIS;
- Matomo – one of the best on-premise privacy-driven analytics solution;
- AdminJS – an amazing tool for building a Node.js-powered internal tools: be it a basic admin panel or a features-packed back-office system;
- GraphHopper – a route optimization engine, must have for most location-based products that require advanced routing algorithms;
- Camunda – a fantastic tool for automating your processes and eliminating manual labour that don’t particularly required any human intervention and can be performed much faster and with greater results by a machine;
- Cesium – what you’re looking for in you need to visualize your 3D geospatial data within your web or mobile applications;
- Eventrix – an enterprise-scale-ready, resources-efficient state management and global state centralization library for your application’s frontend;
- Mapnik – an open-source software solution that powers such giants mapping apps as OpenStreetMap and Mapbox; and
- Mapbox GL – speaking of Mapbox, Mapbox GL is the ultimate tool for creating interactive maps with unlimited customization options.
Aaand that’s it for today, hope you find this list useful! If you’re looking for custom recommendations regarding the specific business needs of your geolocation app or an enterprise solution – feel free to drop me a line at ross@rst.software, and I’ll do my best to help you out.
Adiós!