Leaflet - 获取覆盖全屏的地图
Leaflet - get a map that covers the full screen
在 leaflet 和 mapbox 中,我想去掉地图上方和下方的两个灰色条,如下图所示。当我放大时(例如,zoomLevel = 3),我的#map DOM 元素占据全屏并且灰色条消失。所以灰色条似乎是由于 zoomLevel 具有比我的屏幕小的给定高度(以 px 为单位)的图块。
我想保持相同缩放级别的图块,但要确保图块的高度至少覆盖整个屏幕。
这是我的地图设置代码:
vm.map = L.map('map', {
center: [35, 15],
zoom: 2,
maxZoom: 21,
scrollWheelZoom: true,
maxBounds: [
[89.9, 160.9],
[-89.9, -160.9]
],
zoomControl: false,
noWrap: true,
zoomAnimation: true,
markerZoomAnimation: true,
});
我正在使用 angular,我的屏幕尺寸是 1920 x 1080
听起来您需要计算地图仅显示 85°N 和 85°S 之间区域的最小缩放级别。
getBoundsZoom()
method of L.Map
对此有帮助,例如:
var bounds = L.latLngBounds([[85, 180],[-85, -180]]);
var wantedZoom = map.getBoundsZoom(bounds, true);
var center = bounds.getCenter();
map.setView(center, wantedZoom);
请注意,这是一个通用解决方案,适用于任何大小的地图容器。
您还可以将地图的 minZoom
设置为该值,并尝试使用分数缩放(请参阅 zoomSnap
选项)。如果您希望用户无法拖动到绘制区域之外,请使用地图的 maxBounds
选项以及类似 [[85, Infinity],[-85, -Infinity]]
.
的内容
(如果您想知道为什么是 85°N 和 85°S,请阅读 https://en.wikipedia.org/wiki/Web_Mercator)
在 leaflet 和 mapbox 中,我想去掉地图上方和下方的两个灰色条,如下图所示。当我放大时(例如,zoomLevel = 3),我的#map DOM 元素占据全屏并且灰色条消失。所以灰色条似乎是由于 zoomLevel 具有比我的屏幕小的给定高度(以 px 为单位)的图块。
我想保持相同缩放级别的图块,但要确保图块的高度至少覆盖整个屏幕。
这是我的地图设置代码:
vm.map = L.map('map', {
center: [35, 15],
zoom: 2,
maxZoom: 21,
scrollWheelZoom: true,
maxBounds: [
[89.9, 160.9],
[-89.9, -160.9]
],
zoomControl: false,
noWrap: true,
zoomAnimation: true,
markerZoomAnimation: true,
});
我正在使用 angular,我的屏幕尺寸是 1920 x 1080
听起来您需要计算地图仅显示 85°N 和 85°S 之间区域的最小缩放级别。
getBoundsZoom()
method of L.Map
对此有帮助,例如:
var bounds = L.latLngBounds([[85, 180],[-85, -180]]);
var wantedZoom = map.getBoundsZoom(bounds, true);
var center = bounds.getCenter();
map.setView(center, wantedZoom);
请注意,这是一个通用解决方案,适用于任何大小的地图容器。
您还可以将地图的 minZoom
设置为该值,并尝试使用分数缩放(请参阅 zoomSnap
选项)。如果您希望用户无法拖动到绘制区域之外,请使用地图的 maxBounds
选项以及类似 [[85, Infinity],[-85, -Infinity]]
.
(如果您想知道为什么是 85°N 和 85°S,请阅读 https://en.wikipedia.org/wiki/Web_Mercator)