Return
GPS Route Planner
Route Configuration
Driving Directions Only
This planner provides optimized driving routes using road networks and highways. This software uses and attributes OpenStreetMap APIs that are used to be able to determine positions and generate routes.
Results
Enter locations and click "Calculate Route" to see driving directions and travel time. Try adding a waypoint like "Palo Alto, CA"
Saved Routes & Directions

No saved routes yet. Calculate a route first and it will automatically appear here.

Route History

Your recent routes will appear here.

Early Navigation Systems (1960s 1970s)

The foundation of modern GPS began with the United States Navy's Transit system, also known as NAVSAT or NNSS (Navy Navigation Satellite System), which entered Naval service in 1964. Transit used an operational constellation of six satellites (three active plus three on-orbit spares) in polar orbits and allowed ships and submarines to obtain position fixes approximately once per hour using Doppler shift measurements. While revolutionary for its time, it was limited compared to modern GPS, providing fixes only periodically rather than continuously. [Wikipedia, Transit Satellite Navigation System]

In 1973, the United States Department of Defense began developing the Global Positioning System (GPS) as a more robust and accurate navigation solution. The first GPS satellite was launched in 1978, and the system reached Full Operational Capability in 1995 with 24 satellites in orbit. [GPS.gov, GPS History] [Wikipedia, GPS]

Civilian Access and Commercial Navigation (1980s 2000s)

Initially, GPS was restricted to military use with Selective Availability, which deliberately degraded civilian accuracy. In 1983, President Ronald Reagan issued a directive making GPS freely available for civilian use following the Korean Air Lines Flight 007 incident, where a navigation error led to the aircraft straying into Soviet airspace. However, Selective Availability remained in place until May 2000, when President Bill Clinton ordered its removal, instantly improving civilian GPS accuracy from approximately 100 meters to within 20 meters. [GPS.gov, Selective Availability]

The first consumer GPS devices for automotive navigation appeared in the late 1990s and early 2000s. Garmin, TomTom, and Magellan became household names as standalone GPS units became affordable. These devices stored map data locally and provided turn by turn directions without requiring an internet connection. [Wikipedia, Automotive Navigation System]

Smartphone Era and Modern Routing (2007 Present)

The introduction of the iPhone in 2007 and the subsequent release of the Android operating system in 2008 revolutionized navigation. Smartphones combined GPS receivers, cellular triangulation, Wi Fi positioning, and internet connected map services to provide real time traffic updates, dynamic rerouting, and voice guided navigation. Google Maps Navigation launched in 2009 as a free turn by turn navigation app, disrupting the standalone GPS market significantly. [Wikipedia, Google Maps]

OpenStreetMap, founded in 2004 by Steve Coast, emerged as the Wikipedia of maps, creating a free and editable map of the world maintained by millions of volunteers. Today, OpenStreetMap has over 10 million registered accounts and continues to grow. It powers countless applications including this route planner, providing map data that is free to use and constantly improving. [OpenStreetMap, About]

Geocoding: Converting Addresses to Coordinates

Geocoding is the process of converting a human readable address like "San Francisco, CA" into geographic coordinates (latitude and longitude). This application uses Nominatim, the default geocoder for OpenStreetMap. Nominatim searches an address database containing millions of streets, cities, and points of interest, returning the most likely match along with its coordinates. The process involves parsing the address string, normalizing spelling variations, handling abbreviations, and performing a best match search against indexed location data. [Nominatim, Documentation]

Reverse geocoding, the opposite process, converts coordinates back to a human readable address. This is useful for showing where a point on the map actually represents. Both operations are essential for any routing application.

Routing Algorithms: Finding the Best Path

Routing, or pathfinding, is the computational problem of finding the optimal path between two points on a graph. The Open Source Routing Machine (OSRM) used in this application employs a sophisticated variant of Dijkstra's algorithm combined with contraction hierarchies for efficient performance on road networks.

Dijkstra's algorithm, invented by Edsger W. Dijkstra in 1956, explores paths outward from the start point in order of increasing distance until it reaches the destination. While guaranteed to find the shortest path, it is computationally expensive for large networks. Contraction hierarchies preprocess the road network by ranking road segments by importance (highways are more important than local streets), allowing the algorithm to focus on major roads for long distance routing and only consider local roads near the start and destination. This technique reduces routing time from seconds to milliseconds on continent sized networks. [Wikipedia, Dijkstra's Algorithm] [Wikipedia, Contraction Hierarchies]

Map Rendering with Leaflet

Leaflet is an open source JavaScript library for mobile friendly interactive maps. It provides the map container, zoom controls, tile layer management, marker placement, and polyline drawing capabilities used in this application. Leaflet requests map tiles from tile servers like OpenStreetMap's standard tile layer, which provides pre rendered image tiles at various zoom levels. When the user pans or zooms, Leaflet automatically requests the appropriate tiles and displays them in a seamless grid. [Leaflet, Official Website]

OpenStreetMap (OSM)

Type: Collaborative mapping project | License: Open Database License (ODbL)

OpenStreetMap was founded in 2004 by Steve Coast in response to the restrictive licensing of mapping data from government agencies. Today, OSM has over 10 million registered accounts and contains data on roads, buildings, waterways, land use, points of interest, and countless other geographic features across the entire planet. The data is collected through GPS traces, aerial imagery tracing, government data imports, and local knowledge contributed by volunteers. Major companies including Apple, Microsoft, Amazon, and Mapbox use OpenStreetMap data extensively. [OpenStreetMap] [OpenStreetMap Wiki, Stats]

Nominatim Geocoding API

Type: Geocoding (Address to Coordinates) | License: ODbL

Nominatim, Latin for "by name," is the search engine for OpenStreetMap data. It indexes named features from the OSM database including streets, cities, buildings, and points of interest. When an address query is received, Nominatim uses a combination of full text search and structured address parsing to find matches. The API is rate limited to one request per second from a single IP address to ensure fair usage. This application implements retry logic with exponential backoff to handle rate limiting gracefully. [Nominatim, API Documentation]

OSRM (Open Source Routing Machine)

Type: Routing Engine | License: BSD 2 Clause

OSRM is a high performance routing engine designed for road networks. It preprocesses OpenStreetMap data into a highly optimized format supporting contraction hierarchies and multi level Dijkstra. The API accepts coordinate pairs and returns the computed route as GeoJSON, including distance in meters, duration in seconds, turn by turn instructions, and the full route geometry. OSRM supports multiple travel modes including car, bicycle, and foot. This application uses only the car mode for driving directions. [Project OSRM]

Leaflet.js Mapping Library

Type: JavaScript Mapping Library | License: BSD 2 Clause

Leaflet is the leading open source JavaScript library for interactive maps, used widely across the web by developers building mapping applications. It is designed for simplicity, performance, and usability, working across all major desktop and mobile browsers. Leaflet supports tile layers, markers, popups, vector layers, and event handling through a clean, well documented API. Version 1.0 was released in September 2016, and the library continues to be actively maintained, with version 1.9.4 as the current stable release and version 2.0 in alpha as of 2025. [Leaflet, Official Website] [Leaflet, GitHub Repository]

html2canvas

Type: Screenshot Library | License: MIT

html2canvas is a JavaScript library that takes screenshots of web pages or specific DOM elements directly in the user's browser. It works by traversing the DOM and rendering the content to a canvas element. This application uses html2canvas as part of the map viewing feature, capturing the current map view including the route overlay and markers. The hybrid approach used combines captured background tiles with manually drawn paths for accurate rendering of the route. [html2canvas, Official Website]