Геолокационные карты api v3 setinterval - PullRequest
0 голосов
/ 20 апреля 2019

в том, что у меня ошибка с картами Google, мне нужно обновлять положение пользователя каждые 5 секунд, центрируя карту, но при использовании setCenter это оставляет неопределенную ошибку, потому что карта не существует, они могут помочь мне. Спасибо

function cargarMapa() {
      var MY_MAPTYPE_ID = 'custom_style';
       var featureOpts =[
      {"featureType": "administrative","elementType": "geometry","stylers": [{"visibility": "off"}]},
      {"featureType": "poi","stylers": [{"visibility": "off"}]},
      {"featureType": "road","elementType": "labels.icon","stylers": [{"visibility": "off"}]},
      {"featureType": "transit","stylers": [{"visibility": "off"}]}];

        var map = new google.maps.Map(document.getElementById('map'), {
          center: {lat: 6.268688560352701, lng: -75.59639199999998},
          zoom: 17,
          disableDefaultUI: true,
          zoomControl: true,
          zoomControlOptions: {
              position: google.maps.ControlPosition.RIGHT_CENTER
          }
        });
        var styledMapOptions = {name: 'mimap'};
        if (navigator.geolocation) {
          navigator.geolocation.getCurrentPosition(function(position) {
              var pos = {
                lat: position.coords.latitude,
                lng: position.coords.longitude
              };

            var marker = new google.maps.Marker({
                position: pos,
                map: map,
                icon:"./ico/bicimini.png"
              });
              map.setCenter(pos);
          });
        } else {
          // Browser doesn't support Geolocation
          handleLocationError(false, infoWindow, map.getCenter());
        }

        var customMapType = new google.maps.StyledMapType(featureOpts, styledMapOptions);
         map.mapTypes.set(MY_MAPTYPE_ID, customMapType);

}
function actualizar() {

  navigator.geolocation.getCurrentPosition(function(position) {
      var pos = {
        lat: position.coords.latitude,
        lng: position.coords.longitude,
        altitude: position.coords.altitude,
        altitudeAccuracy: position.coords.altitudeAccuracy,
        heading: position.coords.heading,
        speed: position.coords.speed,
        timestamp: position.coords.timestamp
      };
      //alert(JSON.stringify(pos, null, 4));
      map.setCenter(pos);//indefinidad
  });
}

1 Ответ

0 голосов
/ 20 апреля 2019

Переменная map находится в области действия cargarMapa и не будет доступна в actualizar.Объявить map за пределами cargarMapa, как так ...

let map

function cargarMapa() {
  ...
  map = new google.maps.Map(...)
}

function actualizar() {
  ...
  map.setCenter(pos);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...