## 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/)