【问题标题】:Gmap API: Load transitLayer after initializationGmap API:初始化后加载transitLayer
【发布时间】:2018-04-18 02:41:18
【问题描述】:

我正在使用 Gmap API 显示带有 transitLayer 的 Google 地图。我正在尝试改进我网站的PageSpeed。有帮助的一件事是,如果我可以在 Google Map 初始化后加载 transitLayer。我创建了一个fiddle,其中使用transitLayer 初始化了Google Map。谷歌地图初始化后是否可以添加transitLayer?

function initMap() { 
      var map = new google.maps.Map(document.getElementById('map'), { 
      zoom: 13, 
      center: {lat: 51.501904, lng: -0.115871} 
      }); 

  var transitLayer = new google.maps.TransitLayer(); 
  transitLayer.setMap(map); 

}  

【问题讨论】:

  • 你的小提琴不起作用(产生错误initMap is not a function
  • 这很奇怪,它适用于 Chrome 和 Firefox,我无法在其他设备上重现此错误。有人可以确认这个错误吗?

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


【解决方案1】:

我不确定谷歌地图初始化后的意思。我想您可以使用为 Map 类定义的事件之一,例如 tilesloadedidle

https://developers.google.com/maps/documentation/javascript/reference#Map

所以,代码可能类似于

function initMap() { 
  var map = new google.maps.Map(document.getElementById('map'), { 
    zoom: 13, 
    center: {lat: 51.501904, lng: -0.115871} 
  }); 

  google.maps.event.addListenerOnce(map, "idle", function() {
    var transitLayer = new google.maps.TransitLayer(); 
    transitLayer.setMap(map);
  });
}   

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-04
    • 2017-12-15
    • 1970-01-01
    • 2015-10-12
    相关资源
    最近更新 更多