Ready to watch this entire course?
Become a member and get unlimited access to the entire skills library of over 4,900 courses, including more Developer and personalized recommendations.Start Your Free Trial Now
- View Offline
- Using the Communications API
- Understanding geolocation
- Getting and watching the current position
- Using web workers and WebSockets
- Implementing mobile web user interfaces
- Managing data in a mobile web application
- Working offline
- Using Web SQL
- Using drag-and-drop
Skill Level Intermediate
HTML5 has a geolocation API which allows a web application to figure out where it's currently running. You can now find out where you are at the moment, or you can have a series of repeated requests to watch your position as you move about. So in this first example, I'm just going to show how you can get the count position as a one off request. This file is in your project files folder just make sure if your to run this demo that you copy it into your web server folder. So for me that's iis or a web server folder is inetpub wwwroot.
Okay? So, once you've done that when you open the page you can click the get current position button. That will use some Java Script code which uses the geolocation API and as soon as you do that the browser intercepts the request. And it says well hold it, it actually pops up some sort of UI to the user to say, do you actually want to allow this application to figure out where you are. Because its actually quite a sense the piece of information really. So, obviously the way that the pop-up appears depends on which browser and which device you are using. I'm using Chrome here, and this is how Chrome asks me as a user, do you want to allow or deny access to geolocation information? So obviously I'll click Allow here. And the information that you get back is shown over on the right-hand side. You will always get back latitude, longitude, and accuracy, and then depending on what type of browser and what type of device you've got. You may also get some optional information as well. So, let me just take you through the information here. Latitude, a positive number means that you're north of the equator; a negative number means that you're south of the equator.
I'm in Swansea, which is pretty much on the line with London, and that's 51 degrees north. The longitude, a negative number, means that you're west of Greenwich in London, so I'm about four degrees west of London. A positive number would mean that you're East of London. And then the accuracy gives you an idea about how much faith you can put in this geolocation information. 39 meters of accuracy is pretty good, and that would probably be good enough most commercial applications.
The accuracy might be not as good as that it depends on how the application, how the device, has actually retrieved the geolocation infromation. For example I'm running on a desktop here. I think it is probably using the Wi-Fi access point downstairs to determine where I'm. I ran this application on my iPhone earlier, and it came up with more accurate information. And I think in that case it was probably picking up the cell phone tower to triangulate and figure out where I was. Other possibilities might be GPS.
If your application has GPS enabled, then the device may use GPS to figure out where you are. That tends to take a little bit longer. And it's quite expensive in terms of power consumption on the device but it would probably give you back more accurate information. Okay, so, you always get back the latitude the longitude and the location accuracy. And then you might also get back the heading that tells you which direction you're going in and the Speed. That'll tell you how fast you are going. When I go running, that number always comes up too slow for my liking.
You might get the altitude, as well. I haven't got the altitude here on my desktop run. When I ran it on my iPhone, it did give me the altitude, and we're about 10 meters above sea level. We're right by the sea, actually. So the altitude is, is pretty low, and you'll also possibly get back the altitude accuracy and, obviously, that depends on which mechanism was used to get the information. Satellite triangulation, for example, or cellphone tower triangulation would allow you to get your altitude. And then, finally, we have the time stamp and that tells you when the information was retrieved.
So that's the kind of information that you can get back with geolocation API. What we'll see in later lessons is how this API works in detail.