我在指定位置绘制了一个半径为 3 英里的圆圈,但缩放级别显示了整个美国以及太平洋和大西洋。如果我通过 UI 比例小部件手动放大,圆圈是它应该在的位置并且是正确的大小。我以为fitBounds()
是自动放大?如果需要显式调用setZoom()
,如何计算正确的缩放级别以包含整个圆圈而不显示太多圆圈外的区域?
function setInitialMapFocusByZipcode(zipcode, desiredRadius)
{
geocoder.geocode(
{ 'address': zipcode }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
usmap.setCenter(results[0].geometry.location);
var circ = new google.maps.Circle({
map: usmap,
fillOpacity: 0.25
});
circ.setRadius(desiredRadius * 1609.344); // desiredRadius=3 in testing
circ.setCenter(results[0].geometry.location);
usmap.fitBounds(circ.getBounds());
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
}