Как установить интервал обновления местоположения каждые 10 секунд? - PullRequest
0 голосов
/ 19 октября 2018

У меня есть этот код, который работает нормально, и я хочу "обновлять" местоположение каждые 10 секунд, я искал и пробовал, но не смог найти способ

  var map, infoWindow;
  function initMap() {
    map = new google.maps.Map(document.getElementById('map'), {
      center: {lat: -34.397, lng: 150.644},
      zoom: 6
    });
    infoWindow = new google.maps.InfoWindow;



    if (navigator.geolocation) {
      navigator.geolocation.getCurrentPosition(function(position) {
        var pos = {
          lat: position.coords.latitude,
          lng: position.coords.longitude
        }

        infoWindow.setPosition(pos);
        infoWindow.setContent('Location found.');
        infoWindow.open(map);
        map.setCenter(pos);

Я думаю, что яследует установить интервал здесь, но я не знаю как.Любая помощь приветствуется

      }, function() {
        handleLocationError(true, infoWindow, map.getCenter());
        interval
      });
    } else {
      // Browser doesn't support Geolocation
      handleLocationError(false, infoWindow, map.getCenter());
    }
  }

  function handleLocationError(browserHasGeolocation, infoWindow, pos) {
    infoWindow.setPosition(pos);
    infoWindow.setContent(browserHasGeolocation ?
   'Error: The Geolocation service failed.' :
   'Error: Your browser doesn't support geolocation.');
    infoWindow.open(map);
  }

1 Ответ

0 голосов
/ 19 октября 2018

Я надеюсь, что следующее решение немного вас просветит, спасибо.

var map, infoWindow;

function initMap() {
  map = new google.maps.Map(document.getElementById('map'), {
    center: {
      lat: -34.397,
      lng: 150.644
    },
    zoom: 6
  });
  infoWindow = new google.maps.InfoWindow;

  getCurrentPosition(map, infoWindow)


}

function getCurrentPosition(map, infoWindow) {
  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(function(position) {
      var pos = {
        lat: position.coords.latitude,
        lng: position.coords.longitude
      }

      infoWindow.setPosition(pos);
      infoWindow.setContent('Location found.');
      infoWindow.open(map);
      map.setCenter(pos);
      setTimeout(getCurrentPosition(map, infoWindow), 10000);

    }, function() {
      handleLocationError(true, infoWindow, map.getCenter());
      interval
    });
  } else {
    // Browser doesn't support Geolocation
    handleLocationError(false, infoWindow, map.getCenter());
  }
}


function handleLocationError(browserHasGeolocation, infoWindow, pos) {
  infoWindow.setPosition(pos);
  infoWindow.setContent(browserHasGeolocation ?
    'Error: The Geolocation service failed.' :
    "Error: Your browser doesn't support geolocation.");
  infoWindow.open(map);
}
...