HTML Geolocation is used to locate a user's position
Locate the User's Position
The HTML Geolocation API is used to get the geographical position of a user.
Since this can compromise user privacy, the position is not available unless the user approves it.
Browser Support
Internet Explorer 9+, Firefox, Chrome, Safari and Opera support Geolocation.
Note: Geolocation is much more accurate for devices with GPS, like iPhone.
Using HTML Geolocation
Use the getCurrentPosition() method to get the user's position.
The example below is a simple Geolocation example returning the latitude and longitude of the user's position:
Example
<script> var x = document.getElementById("demo"); function
getLocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPosition);
} else { x.innerHTML = "Geolocation is not supported by this
browser."; } }
function showPosition(position) { x.innerHTML = "Latitude:
" + position.coords.latitude + "<br>Longitude: " + position.coords.longitude;
} </script>
If supported, run the getCurrentPosition() method. If not,
display a message to the user
If the getCurrentPosition() method is successful, it returns a coordinates object
to the function specified in the parameter ( showPosition )
The showPosition() function gets the displays the Latitude and Longitude
The example above is a very basic Geolocation script, with no error handling.
Handling Errors and Rejections
The second parameter of the getCurrentPosition() method is used to handle
errors. It specifies a function to run if it fails to get the user's location:
Example
function showError(error) { switch(error.code)
{ case error.PERMISSION_DENIED: x.innerHTML = "User denied the request for Geolocation." break; case error.POSITION_UNAVAILABLE: x.innerHTML = "Location information is unavailable." break; case error.TIMEOUT: x.innerHTML = "The request to get user location timed out." break; case error.UNKNOWN_ERROR: x.innerHTML = "An unknown error occurred." break; }
}
In the example above we use the returned latitude and longitude data to show the location in a Google map (using a static image).
Google Map Script
How to use a script to show an interactive map with a marker, zoom and drag options.
Location-specific Information
This page demonstrated how to show a user's position on a map. However, Geolocation is also very useful for
location-specific information.
Examples:
Up-to-date local information
Showing Points-of-interest near the user
Turn-by-turn navigation (GPS)
The getCurrentPosition() Method - Return Data
The getCurrentPosition() method returns an object if it is successful. The latitude,
longitude and accuracy properties are always returned. The other properties below are returned if available.
Property
Description
coords.latitude
The latitude as a decimal number
coords.longitude
The longitude as a decimal number
coords.accuracy
The accuracy of position
coords.altitude
The altitude in meters above the mean sea level
coords.altitudeAccuracy
The altitude accuracy of position
coords.heading
The heading as degrees clockwise from North
coords.speed
The speed in meters per second
timestamp
The date/time of the response
Geolocation object - Other interesting Methods
watchPosition() - Returns the current position of the user and continues to
return updated position as the user moves (like the GPS in a car).
clearWatch() - Stops the watchPosition() method.
The example below shows the watchPosition() method. You need an accurate GPS device to test this (like iPhone):
Example
<script> var x = document.getElementById("demo"); function
getLocation() { if (navigator.geolocation) { navigator.geolocation.watchPosition(showPosition);
} else { x.innerHTML = "Geolocation is not supported by this
browser."; } }
function showPosition(position) { x.innerHTML = "Latitude:
" + position.coords.latitude + "<br>Longitude: " + position.coords.longitude;
} </script>