动态调整谷歌地图边界

时间:2012-09-08 17:03:28

标签: google-maps

好的,这是情况: 我有一个相对较小的350px x 350px的地图。我有一个州的所有国会选区的协调数据。我创建了一个带有控件的谷歌地图,允许我选择一个地区类型(州议会,州参议院,我们的房子),然后选择一个特定的地区。这将触发一个事件,该事件又执行一个函数,该函数可以检索描述该区域的坐标数据,从数据中创建多边形并将其显示在地图上。所有这一切都很好,除了这样一个事实,即各种各样的形状和尺寸有时会导致多边形太小(或者太大,取决于缩放级别)。我曾多次尝试找到动态调整地图边界的方法无济于事。这是我最近的尝试。不幸的是,fitBounds将坚持添加那令人愤怒的填充。有人可以帮忙吗?也许一个三角天才有一个解决方案?我还应该提到所有用户控件都被禁用,因为这是为了自动生成PDF。

PdfGenerator.data.currentPolygon.setMap(PdfGenerator.data.smallMap);

overlay = new google.maps.OverlayView();
overlay.draw = function() {};
overlay.setMap(PdfGenerator.data.smallMap);

google.maps.event.addListenerOnce(PdfGenerator.data.smallMap, 'idle', function() {
    swCoords = overlay.getProjection().fromDivPixelToLatLng(
        new google.maps.Point(0, 350)
    );
    neCoords = overlay.getProjection().fromDivPixelToLatLng(
        new google.maps.Point(350, 0)
    );

    var bounds = PdfGenerator.data.currentBounds;
    bounds.extend(swCoords);
    bounds.extend(neCoords);

    PdfGenerator.data.smallMap.fitBounds(
        bounds
    );
});

0 个答案:

没有答案