The HTML 5 has concept of Geo Location that lets you read current address of the user, So if your using a mobile device it will give you current address using GPS but if your using normal Laptop or Desktop it still gives you current address with less accuracy. In my case it gives address of AT&T office which is my internet provider. I wanted to figure out how GeoLocation API's work so i build this sample application that displays my current address. You can download the Geolocation.html file from
here
This is how my Geolocation.html page looks like in browser
My Geolocation.html page has one
Get Location
button when you click on that button it will show you address of the current location. Now the address is not always accurate. Also i tested this code in Firefox 12.0 and Internet Explorer 9, the Geolocation code does not work in Chrome if your accessing the file directly from file system i mean using
file://
URL.
This is the source code for the Geolocation.html
<!DOCTYPE html>
<html>
<head>
<title>GeoLocation</title>
<script src="http://maps.google.com/maps/api/js?sensor=true">
</script>
<script type="text/javascript" charset="utf-8">
function getLocation(){
console.log("Entering getLocation()");
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(
displayCurrentLocation,
displayError,
{
maximumAge: 3000,
timeout: 5000,
enableHighAccuracy: true
});
}else{
console.log("Oops, no geolocation support");
}
console.log("Exiting getLocation()");
};
function displayCurrentLocation(position){
console.log("Entering displayCurrentLocation");
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
console.log("Latitude " + latitude +" Longitude " + longitude);
getAddressFromLatLang(latitude,longitude);
console.log("Exiting displayCurrentLocation");
}
function displayError(error){
console.log("Entering ConsultantLocator.displayError()");
var errorType = {
0: "Unknown error",
1: "Permission denied by user",
2: "Position is not available",
3: "Request time out"
};
var errorMessage = errorType[error.code];
if(error.code == 0 || error.code == 2){
errorMessage = errorMessage + " " + error.message;
}
alert("Error Message " + errorMessage);
console.log("Exiting ConsultantLocator.displayError()");
}
function getAddressFromLatLang(lat,lng){
console.log("Entering getAddressFromLatLang()");
var geocoder = new google.maps.Geocoder();
var latLng = new google.maps.LatLng(lat, lng);
geocoder.geocode( { 'latLng': latLng}, function(results, status) {
console.log("After getting address");
console.log(results);
if (status == google.maps.GeocoderStatus.OK) {
if (results[1]) {
console.log(results[1]);
alert(results[1].formatted_address);
}
}else{
alert("Geocode was not successful
for the following reason: " + status);
}
});
console.log("Entering getAddressFromLatLang()");
}
</script>
</head>
<body>
<h1>Display the map here</h1>
<input type="button" id="getLocation"
onclick="getLocation()" value="Get Location"/>
<div id="map"></div>
</body>
</html>
When you click on Get Location button the control goes to
getLocation()
function which first checks if the browser supports GeoLocation API by checking
navigator.geolocation
object, if that object is not null that means browser supports GeoLocation and we ask browser for current location by calling
navigator.geolocation.getCurrentPosition()
with
displayCurrentLocation()
as a call back function if the current location lookup was successful.
The browser calls
displayCurrentLocation()
function with current location using position object, which has longitude and latitude as properties. The latitude and longitude would have values like
Latitude 37.5668988 Longitude -121.9753273
, so we have to use the Google MAP API to get street address from the longitude and latitude values, for that we call
getAddressFromLatLang
function.
Inside the
getAddressFromLatLang()
function i am creating object of
google.maps.Geocoder
and calling its
geocode()
method with latitude and longitude and it returns array of addresses for that location. Once i have the address i can print it using alert.
Thnx!! Sunil for providing the code.
ReplyDeleteVery nice.
Can't find a code that gives you exact street and number. Does that even exist?
ReplyDeleteThanks for posting the code, but when i run the code it is working properly, but in the very next day it is showing the timeout error.
ReplyDeletePlease tell me the reason why it is throwing the time out error.
Thank you very much :)
ReplyDeleteDo you know how to cluster the points and get number of points in an area?
ReplyDeleteHELP!!
ReplyDeleteNot working for me! :/ I copied the code as it was, still not successful. Its saying.
Uncaught SyntaxError: Unexpected token ILLEGAL
Uncaught ReferenceError: getMeLocation is not defined
I got the browser output output showing "display the map here" and " Get location" button buy no effect after the button is clicked.
somebody help please !!!!
HELP!!!
ReplyDeleteoops! found it. Thanks.
But why does it show only the plain address on browser when I click on "Get location" button?
What exactly my query is, I need to get the complete address of my current location but need to display it on map(Just like how Google maps does)
Guys can anyone tell me how to display the city name along with the current location and address?
ReplyDeleteUsing the same code to display city name along with address
ReplyDeleteHI its shows error: Permission denied by user
ReplyDeletethanks for the code, after 6 hours to try to find a code that works, i found your blog and was very happy, thanks a lot!
ReplyDeleteNice post and great content.
ReplyDeleteAvast Customer Support is here to help you out with the whole procedure to Download Avast Antivirus online, We not only fix your Avast Support related issues but will guide with how to get started with your new Avast product once it gets installed successfully. We at Avast Tech Support provides service to protect your PC from potential online threats and external attacks like viruses, Trojans, malwares, spywares and phishing scams. And Avast Refund. Call on our Avast Phone Number
Gmail Customer service is a third party technical support service for Gmail users when they face any technical issue or error in their Gmail account. Our Gmail Customer Support team solves issues like forgot Gmail account password, Gmail configuration or Sync issues, recover deleted emails and many more. Toll Free number (800) 986-9271
How you install or reinstall Office 365 or Office 2016 depends on whether your Office product is part of an Office for home or Office for business plan. If you're not sure what you have, see what office com setup products are included in each plan and then follow the steps for your product. The steps below also apply if you're installing a single, stand-alone Office application such as Access 2016 or Visio 2016. Need Help with office setup Enter Product Key? Call 1-800-000-0000 Toll Free
Norton Tech Support is a third party service provider and not in any way associated with Norton or any of its partner companies. We offer support for Norton products and sell subscription based additional warranty on computer and other peripheral devices. Call our Toll Free number 1 855 966 3855
Other Services
Norton Toll Free , Office-Setup , office.com/setup.
Usually I never comment on blogs but your article is so convincing that I never stop myself to say something about it. You’re doing a great job Man, Keep it up.
ReplyDeletesocial bookmarking sites list
web 2.0 sites list
teer result
THANK YOU FOR THE INFORMATION
ReplyDeletePLEASE VISIT US
Web designing company in Bangalore
Nice blog Thank you
ReplyDeleteweb design company in bangalore
website design company in bangalore
best web design company in bangalore
Mcafee gives regular reports about the various computer threats and infections that were identified and then blocked. If any malware or virus attempts to get downloaded on the device, McAfee security suite will not only identify it, but it will also block its entry. visit at mcafee.com/activate | www.mcafee.com/activate | mcafee.com/activate
ReplyDeleteThank you for sharing the code, but when I run it, it functions as intended, but the very following day, a timeout error appears. Geolocation API and Isaichan
ReplyDelete