Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introduction to Geolocation

Introduction to Geolocation

Just after the Geolocation APIs were released I gave an introductory talk about them at Techmeetup

Aaron Bassett

July 01, 2009
Tweet

More Decks by Aaron Bassett

Other Decks in Technology

Transcript

  1. “Geolocation is the identification of the real-world geographic location of

    an Internet-connected computer, mobile device, website visitor or other.” Wikipedia
  2. <header> <hgroup> <h1>Geolocation Demo</h1> <h2>for <a href='http://techmeetup.co.uk/blog/2009/11/announcing-techmeetup-glasgow-7/'> Glasgow Tech Meetup</a></h2>

    </hgroup> </header> <div id='map'> <p><small>&lt;!-- map goes here --&gt;</small></p> </div> <p id='message'><strong>Status:</strong> <em id='status'>waiting...</em></p> <footer> <p><a href='https://github.com/aaronbassett/TMU-Geolocation'>download source from Github</a></p> </footer> <script type='text/javascript'> function success(position) { var s = document.getElementById('status'); if (s.className == 'success') { // not sure why we're hitting this twice in FF, // I think it's to do with a cached result coming back return; } s.innerHTML = "found you!"; s.className = 'success'; var latlng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude); var myOptions = { zoom: 15, center: latlng, mapTypeControl: false, navigationControlOptions: {style: google.maps.NavigationControlStyle.SMALL}, mapTypeId: google.maps.MapTypeId.ROADMAP }; var map = new google.maps.Map(document.getElementById("map"), myOptions); var marker = new google.maps.Marker({ position: latlng, map: map, title:"You are here!" }); } function error(msg) { var s = document.getElementById('status'); s.innerHTML = typeof msg == 'string' ? msg : "failed"; s.className = 'error'; } if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(success, error); } else { error('not supported'); } </script>
  3. Example function success(pos) { alert(pos.coords.latitude+" : "+pos.coords.longitude); } function error(msg)

    { msg = (typeof msg == 'string') ? msg : "couldn't find you :("; alert(msg); } if(navigator.geolocation) { navigator.geolocation.getCurrentPosition(success, error); } else { error('not supported'); }
  4. /* GeoFill by Christian Heilmann Version: 1.1 Homepage: http://icant.co.uk/geofill Copyright

    (c) 2009, Christian Heilmann Code licensed under the BSD License */