【问题标题】:How to preserveViewport with Drive KML file embed in google maps api v3如何使用嵌入谷歌地图 api v3 的 Drive KML 文件保留视口
【发布时间】:2013-06-18 01:35:23
【问题描述】:

编辑:已解决:

var opt = { minZoom: 6, maxZoom: 9 };
  map.setOptions(opt);

我是一名剪切粘贴编码员,虽然我打算更好地学习语法,但我现在正处于最后期限,所以我正在寻求帮助。我已经在谷歌上进行了广泛的搜索,虽然我的问题有解决方案,但我还没有找到适合我的解决方案。我的 KML 文件托管在 Google Drive 上,所以不是文件 url,而是 driveFileId。

如果要保留Viewport,通常只需将其添加到图层对象并将其设置为“true”。但是,无论我如何编写,我的 KML 文件都不会让我覆盖其边界适合屏幕的默认缩放级别。有人可以帮忙吗?这是工作对象:

var layer = new google.maps.KmlLayer({
driveFileId: "0Bexampleg"});
layer.setMap(map);

编辑:这就是全部内容。或许您可以查看是否存在导致这种情况的冗余或矛盾。

<!DOCTYPE html>
<html<!DOCTYPE html>
<html>
<head>
    <script type="text/javascript" src="http://maps.google.com/maps/api/js?key=Aexamplekey0&sensor=true"></script>
    <style>
        #map {
            width: 310px;
            height: 410px;
        }
    </style>

    <script>
        window.onload = function () {
var latlng = new google.maps.LatLng(53.385873, -1.471471);

var styles = [
  {
    //whatever
  }
]

var myOptions = {
zoom: 15,
            disableDefaultUI: false,
                styles: styles
            },

            map = new google.maps.Map(document.getElementById('map'), myOptions);

var layer = new google.maps.KmlLayer({
    driveFileId: "0Bexampleg"});
layer.setMap(map);
}
google.maps.event.addDomListener(window, 'load', initialize);
    </script>

</head>

<body>
<div id="map"></div>
</body>
</html>

【问题讨论】:

  • 您是如何将 preserveViewport 选项添加到该代码的?
  • 就像下面 Tony 展示的例子。 (var layer = new google.maps.KmlLayer({ driveFileId: "0Bexampleg", preserveViewport: true}); layer.setMap(map); 当我这样做时,它只是将我的地图呈现为空白,但我仍然可以看到地图轮廓 - 就好像 kml 层只是挡住了一切。这与地图代码不起作用时不同 - 屏幕只是空白。

标签: google-maps-api-3 kml viewport google-drive-api


【解决方案1】:

基于current release API documentation,您应该能够在您实例化的对象中设置preserveViewport 选项:

var layer = new google.maps.KmlLayer({
    driveFileId: "0Bexampleg",
    preserveViewport: true});
layer.setMap(map);

如果没有更多信息,例如您的 KML 数据的 URL、有关您的地图中心和缩放的信息,就没有更多可以说的了。

【讨论】:

    【解决方案2】:

    知道了!

    这里是:

    var opt = { minZoom: 11, maxZoom: 15 };
    map.setOptions(opt);
    

    然后在您的 myOptions 对象中设置默认缩放。在这里找到解决方案:Google Maps v3 - limit viewable area and zoom level 感谢@ChrisV。我不知道为什么,但 KML 层不允许对原始 preserveViewport 代码进行任何排列。

    【讨论】:

      猜你喜欢
      • 2013-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-15
      相关资源
      最近更新 更多