Google 地图:全屏 + fitBounds 不适合边界
Google Maps: full screen + fitBounds does not fit bounds
我有一张地图显示带有 markerClusterer 的标记。
在普通视图中一切正常,但在全屏模式下,单击群集会运行 "fitBounds" 并且缩放未正确更改(缩小而不是放大)。
代码:
var mapOptions = {
zoom: 17,
minZoom: 4,
maxZoom: 20,
center: {lat: 0, lng: 0},
fullscreenControl: true
}
var mcOptions = {
gridSize: 20,
styles: clusterStyles,
maxZoom: 20
};
var bounds = new google.maps.LatLngBounds();
function initialize(itensJSON){
var map = new google.maps.Map(document.getElementById("map"), mapOptions);
$.each(itensJSON, function (i, item) {
var marker = new google.maps.Marker({
position: item.location,
id: item.id
});
markers.push(marker);
bounds.extend(marker.getPosition());
});
map.fitBounds(bounds);
markerClusterer = new MarkerClusterer(map, markers, mcOptions);
}
html:
<div id="map_container" style="position: absolute; width: 100%; height: 80%;">
<div id="map" style="width: 100%; height: 100%">
</div>
</div>
在 markerclusterer.js 的 'triggerClusterClick' 中运行 fitbounds 时发生缩小而不是放大:
ClusterIcon.prototype.triggerClusterClick = function(event) {
var markerClusterer = this.cluster_.getMarkerClusterer();
// Trigger the clusterclick event.
google.maps.event.trigger(markerClusterer, 'clusterclick', this.cluster_, event);
if (markerClusterer.isZoomOnClick()) {
// Zoom into the cluster.
this.map_.fitBounds(this.cluster_.getBounds());
}
};
有谁知道发生了什么事吗?
PS:使用 "fullscreenControl"(在选项映射中启用)
更改为全屏
有问题的示例:fiddle
在 div 地图
的高度中使用“% measure”时会出现问题
我是这样解决问题的:
html, body {
height: 100%;
width: 100%;
margin: 0px;
padding: 0px
}
解决方案示例:fiddle
我有一张地图显示带有 markerClusterer 的标记。
在普通视图中一切正常,但在全屏模式下,单击群集会运行 "fitBounds" 并且缩放未正确更改(缩小而不是放大)。
代码:
var mapOptions = {
zoom: 17,
minZoom: 4,
maxZoom: 20,
center: {lat: 0, lng: 0},
fullscreenControl: true
}
var mcOptions = {
gridSize: 20,
styles: clusterStyles,
maxZoom: 20
};
var bounds = new google.maps.LatLngBounds();
function initialize(itensJSON){
var map = new google.maps.Map(document.getElementById("map"), mapOptions);
$.each(itensJSON, function (i, item) {
var marker = new google.maps.Marker({
position: item.location,
id: item.id
});
markers.push(marker);
bounds.extend(marker.getPosition());
});
map.fitBounds(bounds);
markerClusterer = new MarkerClusterer(map, markers, mcOptions);
}
html:
<div id="map_container" style="position: absolute; width: 100%; height: 80%;">
<div id="map" style="width: 100%; height: 100%">
</div>
</div>
在 markerclusterer.js 的 'triggerClusterClick' 中运行 fitbounds 时发生缩小而不是放大:
ClusterIcon.prototype.triggerClusterClick = function(event) {
var markerClusterer = this.cluster_.getMarkerClusterer();
// Trigger the clusterclick event.
google.maps.event.trigger(markerClusterer, 'clusterclick', this.cluster_, event);
if (markerClusterer.isZoomOnClick()) {
// Zoom into the cluster.
this.map_.fitBounds(this.cluster_.getBounds());
}
};
有谁知道发生了什么事吗?
PS:使用 "fullscreenControl"(在选项映射中启用)
更改为全屏有问题的示例:fiddle
在 div 地图
的高度中使用“% measure”时会出现问题我是这样解决问题的:
html, body {
height: 100%;
width: 100%;
margin: 0px;
padding: 0px
}
解决方案示例:fiddle