geolocation.getCurrentPosition
Failure response is cached when user updates their location settings, unless the page is refreshed.
HTML
<script src="https://maps.google.com/maps/api/js?sensor=false"></script>
<a href="" id="clickme">Click me to Auto Detect</a>
<br/>
<div id="uAddress">
</div>
JavaScript
$(document).ready(function() {
$('#clickme').on('click', function() {
navigator.geolocation.getCurrentPosition(
function(position) {
displayGeoAddress(position.coords.latitude, position.coords.longitude)
},
function(error) {
console.log('failure');
},
{
timeout: 5000,
maximumAge: 0,
enableHighAccuracy: true
}
);
return false;
});
function displayGeoAddress(lat, lon){
console.log(lat, lon)
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(lat, lon);
geocoder.geocode({ 'latLng': latlng }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
console.log(results[1].formatted_address);
element = document.getElementById("uAddress");
console.log(element);
if (results[1]) {
element.innerHTML = results[1].formatted_address;
} else {
element.innerHTML = 'Location not found';
}
} else {
element.innerHTML = 'Geocoder failed due to: ' + status;
}
});
}
});