【问题标题】:map.fitbounds not doing anythingmap.fitbounds 没有做任何事情
【发布时间】:2013-09-28 17:15:29
【问题描述】:

我有一个脚本,它从 html 获取数据并使用它在地图上绘制路线。我试图让它走所有路线并缩放以显示所有路线。代码如下:

var ombounds = new google.maps.LatLngBounds(); //bounds
    for (var r=1; $("#master-master > div").length; r++)
    {
        // Add a placemark at the start of each route
        var placemark_id = "#master-" + r + " > #placemarks-data > #placemark-0";

        var markerParameters = {};
        markerParameters.index = r-1;
        markerParameters.total = $(placemark_id + " > .total").html();
        markerParameters.mapData = $(placemark_id + " > .map").html();
        markerParameters.instructionsData = $("#master-" + r + " > #snippet").html();
        markerParameters.distanceData = $("#master-" + r + " > #distance").html();
        markerParameters.durationData = $("#master-" + r + " > #duration").html();
        markerParameters.titleData = $("#master-" + r + " > #title").html();
        markerParameters.urltitleData = $("#master-" + r + " > #url-title").html();
        markerParameters.imageData = $(placemark_id + " > .image").html();

        $.OverMap.addMarker(markerParameters);

        // Draw route
        var points = new Array();
        var pointsData = [];
        var pointsData = $('#master-' + r + ' > #route-data').html();
        if (pointsData != '')
        {
            var pointsArray = JSON.parse(pointsData);
            for (var p=0; p<pointsArray.length; p++) {
                var pt = new google.maps.LatLng(pointsArray[p][0], pointsArray[p][1]);
                points.push(pt);
                ombounds.extend(pt); //bounds
            }
            $.OverMap.drawRoute(points);

        }
        else $.OverMap.drawDirections({preserveViewport:false});
    }
    (map.getBounds()); //bounds
    map.fitBounds(ombounds); //bounds

由于某种原因,map.fitBounds(ombounds) 什么都不做。代码仍然绘制路线,但我看不到与边界相关的函数在做什么。我已经为所有与缩放相关的行添加了 //bounds - 目前,它们对代码的输出没有明显的影响。有谁知道我哪里出错了?

【问题讨论】:

  • 为什么要将preserveViewport 设置为false?
  • 代码由其他开发者原创
  • 如果你在维护它需要了解它。

标签: google-maps google-maps-api-3 zooming bounds fitbounds


【解决方案1】:

当路线服务的preserveViewport 选项设置为 false 时,每次调用 DirectionsRenderer 都会缩放地图并将其置于其结果的中心。如果您希望 fitBounds 覆盖它,则需要将其设置为 true。

【讨论】:

  • 那怎么样。我一直忽略那条线。尽管如此,即使我将其设置为 true,它仍然无法正常工作。
  • 你能提供足够的代码来重现这个问题吗?还是一个 jsfiddle 呢?
  • 我不认为我可以,因为它需要来自数据库后端的数组。
  • 你的地图的链接怎么样?或者在将坐标添加到边界对象之前通过测试坐标自行调试?或者查看您的数据库并验证所有行是否包含有效坐标?或者从您的数据库中捕获一组坐标并将它们硬编码到一个显示问题的示例中?
猜你喜欢
  • 2012-09-07
  • 2016-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多