【发布时间】:2025-12-19 15:25:06
【问题描述】:
我正在使用 fitBounds() 设置地图上的缩放级别,也包括当前显示的所有标记。但是,当我只有一个标记可见时,缩放级别为 100%(……我认为是 20 级缩放……)。但是,我不希望它被放大那么远,这样用户就可以调整标记的位置而不必缩小。
我有以下代码:
var marker = this.map.createMarker(view.latlng, this.markerNumber);
this.map.bounds.extend(view.latlng);
this.map.map.setCenter(this.map.bounds.getCenter());
this.map.map.fitBounds(this.map.bounds);
if (this.markerNumber === 1) {
this.map.map.setZoom(16);
}
this.markerNumber++;
this.map.bounds 之前定义为:
this.map.bounds = new google.maps.LatLngBounds();
但是,我遇到的问题是,如果我使用 this.map.map.fitBounds(this.map.bounds);,this.map.map.setZoom(16); 行不起作用,但是,我知道这行代码是正确的,因为当我注释掉 fitBound() 行时, setZoom() 神奇地开始运行。
任何想法我如何解决这个问题?如果无法正常工作,我正在考虑设置一个 maxZoom 级别作为替代方案。
【问题讨论】:
-
.map.map 是故意放在那里还是有错误?如果可能的话,上传一个测试页面并提供一个链接,这样我们可以更轻松地看到问题。
-
我遇到了同样的问题。很想知道解决方法。
-
.map.map 是故意的。第一个指的是我的地图对象,第二个指的是谷歌地图对象。我已经从我的代码中清除了这个问题。
标签: javascript google-maps google-maps-api-3 google-maps-markers