相关疑难解决方法(0)

Google Maps API v3:我可以在fitBounds之后设置缩放吗?

我想在嵌入式Google Map(API v3)上绘制一组点.除非缩放级别太低(即缩小太多),否则我希望能够容纳所有点.我的方法是这样的:

var bounds = new google.maps.LatLngBounds();

// extend bounds with each point

gmap.fitBounds(bounds); 
gmap.setZoom( Math.max(6, gmap.getZoom()) );
Run Code Online (Sandbox Code Playgroud)

这不起作用.如果在fitBounds之后直接调用,则最后一行"gmap.setZoom()"不会更改地图的缩放级别.

有没有办法获得边界的缩放级别而不将其应用于地图?解决这个问题的其他想法?

javascript google-maps google-maps-api-3 fitbounds

197
推荐指数
5
解决办法
19万
查看次数

谷歌地图v3:执行分钟.使用fitBounds时缩放级别

我正在地图上绘制一系列标记(使用地图api的v3).

在v2中,我有以下代码:

  bounds = new GLatLngBounds();

  ... loop thru and put markers on map ...
  bounds.extend(point);
  ... end looping

  map.setCenter(bounds.getCenter());
  var level = map.getBoundsZoomLevel(bounds);
  if ( level == 1 ) 
    level = 5;
  map.setZoom(level > 6 ? 6 : level);
Run Code Online (Sandbox Code Playgroud)

这样做可以确保地图上始终显示适当的详细程度.

我试图在v3中复制此功能,但setZoom和fitBounds似乎没有合作:

... loop thru and put markers on the map
  var ll = new google.maps.LatLng(p.lat,p.lng);
  bounds.extend(ll);
... end loop

var zoom = map.getZoom();
map.setZoom(zoom > 6 ? 6 : zoom);
map.fitBounds(bounds);
Run Code Online (Sandbox Code Playgroud)

我尝试过不同的排列(例如,在setZoom之前移动fitBounds)但是我对setZoom的处理似乎不会影响地图.我错过了什么吗?有没有办法做到这一点?

javascript google-maps google-maps-api-3 fitbounds

72
推荐指数
6
解决办法
7万
查看次数

使用fitBounds()和Google Maps API V3后使用setZoom()

我正在使用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++;
Run Code Online (Sandbox Code Playgroud)

其中this.map.bounds先前定义为:

this.map.bounds = new google.maps.LatLngBounds();
Run Code Online (Sandbox Code Playgroud)

但是,我遇到的问题是this.map.map.setZoom(16);如果我使用该行不起作用this.map.map.fitBounds(this.map.bounds);,但是,我知道这行代码是正确的,因为当我注释掉fitBound()行时,setZoom()神奇地开始运行.

我有什么想法解决这个问题?我正在考虑设置一个maxZoom级别作为替代,如果我不能让它工作.

javascript google-maps google-maps-api-3 google-maps-markers

72
推荐指数
3
解决办法
9万
查看次数