Geolocation met Google Maps

Dag bloglezers,

zoals beloofd heb ik vandaag eens de geolocation uitgetest met Google Maps. Ik vind het iets simpeler om met Google Maps te werken. Het heeft even geduurd tegen dat ik een bruikbaar voorbeeld vond, maar het is me uiteindelijk dan toch gelukt!

Hieronder de code:

<!DOCTYPE html>
<html>
  <head>
    <title>Google Maps voorbeeld met Geolocation</title>
  </head>
  <body>
  <script src="http://www.google.com/jsapi?key=ABQIAAAAWvvIYRs1VShGWOvhXFtQcxSlZpBiPmeDnhhJ4mwvo4hrmPZCsxR5B-XTR-p6O_lhwgS2-ro2-S9yTA"></script>
  <script>
    (function () {
      google.load("maps", "2");
      google.setOnLoadCallback(function () {
        // Maak de kaart aan
        var map = new google.maps.Map2(document.getElementById("map")),
          markerText = "<h2>Jij bent hier</h2><p>Gevonden via Geolocation</p>",
          markOutLocation = function (lat, long) {
            var latLong = new google.maps.LatLng(lat, long),
              marker = new google.maps.Marker(latLong);
            map.setCenter(latLong, 16); //stel zoomniveau in
            map.addOverlay(marker);
            marker.openInfoWindow(markerText);
            google.maps.Event.addListener(marker, "click", function () {
              marker.openInfoWindow(markerText);
            });
          };
          map.setUIToDefault();

        // Controleer of geolocation ondersteund wordt
        if (navigator.geolocation) {
          // Vraag de positie
          navigator.geolocation.getCurrentPosition(function (position) {
              // gelukt
              markOutLocation(position.coords.latitude, position.coords.longitude);
            },
            function () {
              // Mislukt, je bent in centrum brussel geplaatst
              markerText = "<p>Accepteer geolocation als je wil dat je gevonden wordt.<br>Je bent nu in Brussel geplaatst.</p>";
              markOutLocation(50.85034, 4.35171);
            }
          );
        }
        else {
          // Probleem bij opvragen van positie
          markerText = "<p>Geolocation is mislukt.</p>";
          markOutLocation(50.85034, 4.35171);
        }
      });
    })();
  </script>
  <div id="map" style="height:800px"></div>
  </body>
</html>

Let wel, net zoals bij Bing MAps moet je een geldige API code ingeven, deze kan je bekomen via <a href="http://code.google.com/apis/maps/signup.html">http://code.google.com/apis/maps/signup.html</a>.

Mijn werkend voorbeeld kan je bekijken door hier te klikken!

Test Geolocation met Bing Maps

Na het artikel op http://msdn.microsoft.com/en-us/magazine/hh563893.aspx gelezen te hebben, wou ik wel eens testen hoe die geolocation werkt die je op meer en meer websites vindt.

Dankzij de nieuwe HTML5 standaard kan je op een simpele manier de surfer zijn positie opvragen. Dit werkt tot enige verbazing vrij simpel. Het is natuurlijk wel moeilijk om dan je website aan te passen aan de locatie van de gebruiker, maar dat is een ander paar mouwen! Daarbij moet je de coördinaten opslaan in een database of variabele en dan daarmee werken.

Als je mijn testpagina wilt bekijken, klik hier!