如何预加载Google Map的特定区域?

时间:2014-04-14 12:50:06

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

假设你打开这张地图:

https://www.google.com.au/maps/@-33.8654593,151.2082297,15z

平移时,您会看到正在加载地图。它现在当然更好,因为地图是在画布元素中绘制的矢量。但是你还需要等待一段时间。

在Google Maps API(docs)中使用Map对象的panTo方法时也会发生同样的情况。这主要是我的问题。我想在已经预加载的谷歌地图的某个区域使用JavaScript,因此用户即使在制作动画时也能看到整个视图。

有没有办法指定要预加载的地图区域,以免加载?

2 个答案:

答案 0 :(得分:1)

不,遗憾的是,作为JavaScript API的一部分,无法做到这一点。

答案 1 :(得分:0)

除了@ Gady的回答,我还准备了一个技巧,为我做了一个工作 - 我制作的地图比我的屏幕大,所以也加载了不可见的区域。这是代码:

<!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <style type="text/css">
      html { height: 100% }
      body { height: 100%; margin: 0; padding: 0 }
      #map-canvas { width: 300%; left: -100%; height: 300%; top: -100%; }
    </style>
    <script type="text/javascript"
      src="https://maps.googleapis.com/maps/api/js?key=API_KEY&sensor=true">
    </script>
    <script type="text/javascript">
      function initialize() {
        var mapOptions = {
          center: new google.maps.LatLng(-34.397, 150.644),
          zoom: 8
        };
        var map = new google.maps.Map(document.getElementById("map-canvas"),
            mapOptions);
      }
      google.maps.event.addDomListener(window, 'load', initialize);
    </script>
  </head>
  <body>
    <div id="map-canvas"/>
  </body>
</html>

here +我的小调整中复制了它。请务必使用生成的here工作密钥替换API_KEY