## TL;DR

The Geolocation API (`navigator.geolocation`) provides device location (latitude, longitude, altitude, accuracy) to web applications with user consent. It uses GPS, WiFi, cell tower triangulation, or IP-based location depending on available hardware.

## Core Explanation

`navigator.geolocation.getCurrentPosition(success, error, options)`. `watchPosition()` for continuous tracking. Options include `enableHighAccuracy`, `timeout`, `maximumAge`. The API is asynchronous and can take seconds to resolve. HTTPS is required. Accuracy varies: GPS ~5m, WiFi ~50m, IP ~city-level.

## Further Reading

- [Geolocation API (W3C Recommendation)](https://www.w3.org/TR/geolocation/)