Skip to content

Instantly share code, notes, and snippets.

@adamalex
Created March 19, 2014 22:34
Show Gist options
  • Select an option

  • Save adamalex/9652875 to your computer and use it in GitHub Desktop.

Select an option

Save adamalex/9652875 to your computer and use it in GitHub Desktop.

Revisions

  1. adamalex created this gist Mar 19, 2014.
    72 changes: 72 additions & 0 deletions index.html
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,72 @@
    <!DOCTYPE html>
    <html>
    <head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
    </head>
    <body>
    <div id="content" style="height: 450px"></div>
    <script type="text/javascript">
    var newyork = new google.maps.LatLng(40.69847032728747, -73.9514422416687);
    var siberia = new google.maps.LatLng(60, 105);
    var infowindow = new google.maps.InfoWindow();
    var lat, lng;

    var map = new google.maps.Map(document.getElementById("content"), {
    mapTypeId: google.maps.MapTypeId.ROADMAP,
    zoom: 13
    });

    if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(showPosition, onError);
    navigator.geolocation.watchPosition(showPosition);
    } else {
    onError();
    }

    function showPosition(position) {
    var newLat = +position.coords.latitude.toFixed(4);
    var newLng = +position.coords.longitude.toFixed(4);

    if (lat === newLat && lng === newLng) return;

    lat = newLat;
    lng = newLng;

    updateMap({
    location: new google.maps.LatLng(lat, lng),
    message: lat + " " + lng,
    zoom: 13
    });
    }

    function onError() {
    var initialLocation;
    var contentString;

    if (navigator.geolocation) {
    initialLocation = newyork;
    contentString = "Error: The Geolocation service failed.";
    } else {
    initialLocation = siberia;
    contentString = "Error: Your browser doesn't support geolocation. Are you in Siberia?";
    }

    updateMap({
    location: initialLocation,
    message: contentString,
    zoom: 4
    });
    }

    function updateMap(data) {
    map.setZoom(data.zoom);
    map.setCenter(data.location);
    infowindow.setContent(data.message);
    infowindow.setPosition(data.location);
    infowindow.open(map);
    }
    </script>
    </body>
    </html>