Google 地图 fitBounds 在只有一个点时不应用填充

Google Maps fitBounds not applying padding when only one point

我正在使用 Google 地图 Javascript API。

每次用户搜索某个地方时,我都会在地图中显示每个地方的标记,并使用 fitBounds 将视口设置为包含给定的边界。

因为我在右侧 400px width 的地图上方有一个面板,所以我在 fitBounds.

中应用了 400px 的右填充
var bounds = new google.maps.LatLngBounds();
bounds.extend(new google.maps.LatLng(lat, lng)); //this line is executed inside a loop for every place
map.fitBounds(bounds, {right: 400});

当我在边界内有多个点时,fitBounds 可以很好地应用填充。但是当我在边界内只有一个点时,fitBounds 不应用填充。相反,它的工作方式类似于 panTo,仅更改地图的中心。

这是 Google 地图 API 中的错误吗?有什么解决方法吗?

这似乎是 API 上的错误,您可以报告它 here

该问题的解决方法是使用 panBy method when there is only one point after calling the fitBounds method, like in this fiddle

var bounds = new google.maps.LatLngBounds();
bounds.extend(new google.maps.LatLng(lat, lng)); //this line is executed inside a loop for every place
map.fitBounds(bounds, {right: 400});
if (pointsCount == 1) { // initialize the var and use the loop to count
    map.panBy(200, 0); // has to be half of needed padding
}