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