A modern Chrome/Edge DevTools extension that allows developers to override all navigator.geolocation
values for local development and testing of location-aware applications.
- Advanced Location Override: Override latitude, longitude, accuracy, heading, speed, altitude and altitude accuracy with a simple interface
- Route Simulation: Upload KML, GeoJSON, or GPX files to simulate movement along routes and override or randomize advanced location values
- Time-based Playback: Real-time or custom-speed route simulation with timestamp support
- Persistent Settings: Settings persist across page reloads and browser sessions
- Clone or download this repository
- Open Chrome/Edge and navigate to
chrome://extensions/
(Chrome) oredge://extensions/
(Edge) - Enable "Developer mode" in the top right
- Click "Load unpacked" and select the extension directory
- The extension will appear in your DevTools panels
- Open DevTools: Press F12 or right-click → "Inspect Element"
- Find the panel: Look for the "Location Override" tab in DevTools
- Select Manual Override tab: Click on "Manual Override" tab
- Enable override: Toggle the "Enable Location Override" switch
- Set coordinates: Enter custom latitude/longitude values, as well as accuracy, heading, speed, altitude and altitude accuracy
- Apply changes: Click "Apply Override"
- Test your app: Your web application will now receive the overridden location
- Save your override as a preset: Optionally save your override as a preset that you can recall at any time
- Open DevTools: Navigate to the "Location Override" panel
- Select Route Simulation tab: Click on "Route Simulation" tab
- Upload route file: Choose a KML, GeoJSON, or GPX file containing route data
- Configure settings:
- Set playback speed (0.5x to 10x)
- Adjust default interval for points without timestamps
- Set default accuracy, or set it to randomize between two values
- Configure advanced settings:
- Set heading, or set it to calcuate a heading based on upcoming point
- Set speed, altitude and altitude accuracy overrides, or randomize them between two values
- Overrides are optional. Extension will use file provided values if available
- Start simulation: Click "
▶️ Start Route" to begin - Control playback: Use pause/resume and stop controls as needed
- KML: Google Earth format with LineString or Point coordinates
- GeoJSON: Geographic data with LineString, Point, or MultiLineString features
- GPX: GPS Exchange format with track points and waypoints
- Files should contain coordinate sequences (LineString/track points)
- Timestamps are optional but recommended for realistic simulation
- Altitude data is supported when available
- Load the extension in developer mode
- Open any website that uses geolocation, or use the included
test-page.html
file - Test with both
getCurrentPosition()
andwatchPosition()
- ✅ Chrome 88+
- ✅ Edge 88+
- ✅ Any Chromium-based browser
- Local Development: Test location-based features without GPS
- Route Testing: Simulate movement along predefined paths
- GPS Simulation: Test navigation apps with realistic route data
- Debugging: Simulate different geographical locations
- QA Testing: Verify app behavior across various coordinates and routes
- Demo Preparation: Set consistent location or route for presentations
- Ensure DevTools is open
- Check that the extension is enabled
- Try refreshing the page after applying override
- Click "Apply Override" after changing coordinates
- Verify "Enable Location Override" is checked
- Some apps cache location - try hard refresh (Ctrl+F5)
- Extension must be loaded and enabled
- Try closing and reopening DevTools
- Check browser compatibility
Please use the GitHub issue tracker for all bugs and feature requests. Before creating a new issue, do a quick search to see if the problem has been reported already.
Please see our guide on contributing if you're interested in getting involved.
Unless stated otherwise, the codebase is released under the MIT License. This covers both the codebase and any sample code in the documentation.
This extension is free forever, and MIT licenced, but if you really like it, you can always Buy me a coffee