如何让谷歌地图刷新流量层?

时间:2016-04-07 21:53:11

标签: javascript node.js google-maps pug

我一直试图制作谷歌地图上的地图,以刷新交通层近2个小时。我想现在我几乎阅读了这里的每一个问题,但所有的解决方案都不适合我。

这是我的代码:



function initMap() {
  var styles = [
    ...
  ];

  var styledMap = new google.maps.StyledMapType(styles, {name: 'Stryled Map'});

  var mapOptions = {
    zoom: 17,
    center: new google.maps.LatLng(4.6903, -74.0498),
    disableDefaultUI: true
  }

  var map = new google.maps.Map(document.getElementById('map'), mapOptions);
}




它在玉石模板中。 非常感谢。

编辑:

标记为重复的链接问题在询问之前已经实现,我在Stackoverflow上找到它但是它不起作用,间隔工作正常,但即使在5分钟后也没有更新。这可能是因为我已经定义了一个自定义样式(正如你在我的代码中看到的那样),这使得地图变暗。

编辑2:

尝试this以及更长的超时时间,以便在重绘时移除上一个图层时看到闪烁,但它只是一次又一次地让我回到相同的地图,流量没有变化。

编辑3:

测试我发现可能是什么问题。使用此功能,如果我将第一个timeOut设置为小于400毫秒(再次重新绘制地图之前的延迟),那么地图将永远不会带来新的流量数据。

updateTrafficOnMap(map, null, 1);

function updateTrafficOnMap(map, trafficLayer, on) {
  if ( on == 0 ) {
    trafficLayer.setMap(null);
    setTimeout(function() {
      updateTrafficOnMap(map, null, 1)
    }, 400);
  }
  if ( on == 1 ) {
    var trafficLayer2 = new google.maps.TrafficLayer();
    trafficLayer2.setMap(map);
    setTimeout(function() {
      updateTrafficOnMap(map, trafficLayer2, 0)
    }, 5000);
  }  
}

现在的问题是,我有一个闪烁的地图,显示和隐藏交通数据5000毫秒。

编辑4:

这里要求的是地图的样式对象。

var styles = [
  {
    "featureType": "road.local",
    "elementType": "geometry",
    "stylers": [
      { "visibility": "simplified" }
    ]
  },{
    "featureType": "road.local",
    "elementType": "labels",
    "stylers": [
      { "visibility": "off" }
    ]
  },{
    "featureType": "road.arterial",
    "elementType": "labels",
    "stylers": [
      { "weight": 0.1 },
      { "saturation": 18 }
    ]
  },{
    "featureType": "landscape.man_made",
    "stylers": [
      { "color": "#242424" }
    ]
  },{
    "featureType": "road",
    "elementType": "geometry",
    "stylers": [
      { "color": "#808080" }
    ]
  },{
    "featureType": "poi.park",
    "stylers": [
      { "color": "#2d2d2d" }
    ]
  },{
    "featureType": "water",
    "stylers": [
      { "color": "#999999" }
    ]
  },{
    "featureType": "road",
    "elementType": "labels.text.fill",
    "stylers": [
      { "color": "#ffffff" }
    ]
  },{
    "featureType": "road",
    "elementType": "labels.text.stroke",
    "stylers": [
      { "color": "#808080" }
    ]
  },{
    "featureType": "poi",
    "elementType": "labels",
    "stylers": [
      { "visibility": "off" }
    ]
  },{
    "featureType": "administrative.neighborhood",
    "elementType": "labels",
    "stylers": [
      { "visibility": "off" }
    ]
  },{
    "featureType": "road.highway",
    "elementType": "geometry.stroke",
    "stylers": [
      { "color": "#777777" }
    ]
  },{
    "featureType": "landscape.natural",
    "elementType": "geometry.fill",
    "stylers": [
      { "color": "#242424" }
    ]
  },{
    "featureType": "poi",
    "elementType": "geometry.fill",
    "stylers": [
      { "color": "#111111" }
    ]
  }
];

0 个答案:

没有答案