2

好的,情况是这样的:我有一个相对较小的 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
    );
});
4

0 回答 0