A Java library for state-of-the-art online and offline map matching using OpenStreetMap, designed for scalable location-based services.
Barefoot is a Java library for map matching that integrates GPS data with OpenStreetMap to reconstruct object paths in real-time or batch modes. It solves the problem of accurately positioning moving objects on a digital map from noisy or sparse GPS measurements, enabling precise location tracking and analysis. The library provides both online (iterative) and offline (full-trace) map matching using a Hidden Markov Model approach.
Developers and engineers building scalable location-based services, fleet management systems, traffic analysis platforms, or any application requiring precise map matching of GPS data. It's particularly suited for teams working with big data frameworks like Apache Spark or Hadoop for spatial data processing.
Developers choose Barefoot for its state-of-the-art map matching algorithms, scalability in distributed environments, and comprehensive spatial toolset—all available as open-source under a business-friendly Apache License. Its ability to handle both real-time and batch processing with stand-alone servers reduces integration complexity.
Java map matching library for integrating the map into software and services with state-of-the-art online and offline map matching that can be used stand-alone and in the cloud.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements both offline (Newson & Krumm) and online (Goh et al.) Hidden Markov Model map matching, providing high accuracy for path reconstruction from GPS traces, as detailed in the referenced research papers.
Designed for parallel and distributed systems with built-in support for Apache Hadoop, Spark, Storm, and Spark Streaming, enabling high-throughput processing in big data pipelines.
Leverages GeographicLib and ESRI's geometry API for advanced geodesic calculations and geometric functions, plus includes DBSCAN for spatial cluster analysis, offering a full toolkit for spatial data.
Provides Docker-based map servers and stand-alone matcher/tracker servers with REST-like APIs, allowing easy integration into cloud infrastructures or on-premise setups.
The quick start requires multiple steps with Docker, Maven, Java JDK, and Python scripts, which can be time-consuming and error-prone for new users, as shown in the lengthy installation guides.
As a Java library, it forces a Java runtime environment, limiting adoption in polyglot microservices architectures and adding overhead for teams using other languages.
The README lists 'Simple routing (Dijkstra)' as TBD (To Be Done), indicating missing functionality that might require users to implement or integrate additional routing libraries.
Tightly coupled with OSM data; using alternative map sources requires significant customization, and the import process involves manual steps with Osmosis and PostGIS.