Partilhar via


HTML 5 : How to track your location using the GeoLocation API .

I have recently going through some of the interesting things which can be done using HTML 5 , the next generation of web . One of the API which got my attention is GEOLOCATION .

 

here using this API we can get to know the current user latitude and longitude and using MAP's we can exactly show you the user's current location . Please go through the details over internet and i am sure you will definetly try this out .

 

let's not waste time , i will show you a simple demo of how to make use of this API in tracking the exact location .

 

let's create a simple .aspx page with the following layout

 Geolocation.aspx :  
  
 <body>
    <div>
    
     <div id ="message" ></div>
 
     <div id="position"></div>
 
     <div id="map" style="border:1px solid blue; height:400px;width:400px">
    </div>
</body>
  
 i just created a div tag for showing the map .i hope every one knows about JQUERY [ its a  fast, concise, library that
  simplifies how to traverse HTML documents, handle events, perform animations , if you are not familiar with it , i would advice you to go through it ,
  and i am sure you gonna love the power of JQUERY ] 
  
 i have made use of JQUERY in my code and i have written a small javascript for using the HTML5 built in GeoLocation API . 
  
 javascript code :  
  
 <head runat="server">
    <title>Geolocation</title>
    <script src="../../Scripts/jquery-1.4.1.js" type="text/javascript"></script>
    <script src=https://maps.googleapis.com/maps/api/js?sensor=false 
 type="text/javascript"></script> 
 
    <script type="text/javascript">
        $(document).ready(function () {
            var message = $("#message");
            var position = $("#position");
            if (window.navigator.geolocation) {
                message.html("locating");
                var geolocation = window.navigator.geolocation;
                var options = { enableHighAccuracy: true}
                geolocation.getCurrentPosition(onComplete, onFail, options);             }
            else {
                message.html("No support");
            }
        });
 
        function onComplete(geoPosition) {
            $("#position").append("<p> Latitude" + geoPosition.coords.latitude + "</p>");
            $("#position").append("<p> Longitude" + geoPosition.coords.longitude + "</p>");
            Initializemap(geoPosition.coords.latitude, geoPosition.coords.longitude);
        }
 
        function onFail() {
            alert("Failed ");
        }
 
        function Initializemap(latitude, longitude) {
 
            var Latlng = new google.maps.LatLng(latitude, longitude);
            var options = {zoom: 18, center: Latlng, mapTypeId: google.maps.MapTypeId.ROADMAP };
            var map = new google.maps.Map(document.getElementById("map"),options);
        }
    </script>
</head>
  
 i have used document ready() function which will be called as soon as the page get's loaded . 
  
 Note:  The highlighted portion in the above codei.e..geolocation.getCurrentPosition(onComplete, onFail, options); is the main part which uses the getCurrentPosition()
  method of the geolocation API which provides us with the Latidude and Longitude coordinates . Here we have provided 2 methods , to inform that if everything is
  successful it will call the onComplete() method or incase of any errors in the code 
 it will call onFail() method . 
  
 i have created another Function Initializemap which takes the inputs as the 2 coords latitude and longitude and provides us with the map showing us exact current user location . 
  
 output: 
  
 it gives us the location like the picture below [ my work location ]