【问题标题】:Geolocation maps api v3 setinterval地理位置地图 api v3 setinterval
【发布时间】:2019-09-10 12:12:15
【问题描述】:

是我的谷歌地图有错误,我需要每 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
  });
}

【问题讨论】:

标签: javascript google-maps-api-3 maps


【解决方案1】:

变量map 在cargarMapa 的范围内,在actualizar 中无法访问。在 cargarMapa 之外声明 map 就像这样......

let map

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

function actualizar() {
  ...
  map.setCenter(pos);
}

【讨论】:

  • 您好,谢谢您的回复,但我有它并显示此错误,无法读取未定义的属性'setCenter'
猜你喜欢
  • 2015-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-06
  • 1970-01-01
  • 2023-04-10
相关资源
最近更新 更多