HTML5 Location Services
by chad
HTML
<script src="https://www.google.com/jsapi"></script>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
Get Location:
<ul>
<li><a href="#" class="location_services">Location Services</a></li>
<li><a href="#" class="location_ip">Google IP Geolocation</a></li>
</ul>
<div class="results"></div>
<div class="zip"></div>
JavaScript
var LocationServices = {
}
function getLocationServices() {
if (navigator.geolocation) {
var timeoutVal = 10 * 1000 * 1000;
navigator.geolocation.getCurrentPosition(
displayPosition,
displayError,
{ enableHighAccuracy: true, timeout: timeoutVal, maximumAge: 0 }
);
}
else {
alert('Geolocation is not supported by this browser');
}
}
function getLocationIP() {
// console.log(google);
var loc = {};
if(google.loader.ClientLocation) {
loc.lat = google.loader.ClientLocation.latitude;
loc.lng = google.loader.ClientLocation.longitude;
var position = {
coords: {
latitude: loc.lat,
longitude: loc.lng
}
}
displayPosition(position);
} else {
alert('IP Geolocation failed');
}
}
function displayPosition(position) {
$('.results').html('Latitude: ' + position.coords.latitude + ', Longitude: ' + position.coords.longitude);
displayZip(position.coords.latitude,position.coords.longitude);
}
function displayZip(latitude,longitude) {
$.getJSON('http://maps.googleapis.com/maps/api/geocode/json?latlng='+latitude+','+longitude+'&sensor=true', function(data){
//console.log(data);
var zipcode = data.results[0].address_components[7].short_name;
$('.zip').html('Zip: '+zipcode);
});
}
function displayError(error) {
var errors = {
1: 'Permission denied',
2: 'Position unavailable',
3: 'Request timeout'
};
alert("Error: " + errors[error.code]);
}
$(document).ready(function(){
$('.location_services').on('click',function(){
event.preventDefault();
getLocationServices();
});
$('.location_ip').on('click',function(){
event.preventDefault();
getLocationIP();
});
});