Geolocation Google Maps

by sjmcpherson

HTML

<script src="//maps.googleapis.com/maps/api/js"></script>
<div id="map"></div>
<div id="demo"></div>

CSS

#map {
  width: 500px;
  height: 400px;
  display: block;
}

JavaScript

var x = document.getElementById("demo");

function getLocation() {
  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(showPosition);
  } else {
    x.innerHTML = "Geolocation is not supported by this browser.";
  }
}

function showPosition(position) {
  var latlon = position.coords.latitude + "," + position.coords.longitude;
  var d = new Date();
  var myLatlng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
  console.log(d.toLocaleTimeString() + " " + latlon);
  //updateLocation(myLatlng, d.toLocaleTimeString());
  
  locationMarker.setPosition(myLatlng);
  setInfoWindow(locationMarker, locationInfoWindow, d.toLocaleTimeString());
  
  //var img_url = "http://maps.googleapis.com/maps/api/staticmap?center="+latlon+"&zoom=14&size=400x300&sensor=false";

  //document.getElementById("mapholder").innerHTML = "<img src='"+img_url+"'>";
}



function myTimer() {
  var d = new Date();
  document.getElementById("demo").innerHTML += " " + d.toLocaleTimeString() + "<br/>";
  getLocation();
}

function setDestination(location, name) {
  var marker = new google.maps.Marker({
    position: location,
    map: map,
    //icon: icon
  });
  markers.push(marker);
  var infowindow = new google.maps.InfoWindow();
  setInfoWindow(marker, infowindow, name);
}
var locationMarker, locationInfoWindow;
function setLocation(location, name) {
  locationMarker = new google.maps.Marker({
    position: location,
    map: map,
    //icon: icon
  });
  markers.push(locationMarker);
  locationInfoWindow = new google.maps.InfoWindow();
  //setInfoWindow(locationMarker, "location");
  var myVar = setInterval(myTimer, 10000);
}




function fitBounds() {
  if (!addressLoad) {
    var bounds = new google.maps.LatLngBounds();
    for (i = 0; i < markers.length; i++) {
      bounds.extend(markers[i].getPosition());
    }

    // Don't zoom in too far on only one marker
    if (bounds.getNorthEast().equals(bounds.getSouthWest())) {
      var...