Can I prevent panning Leaflet map out of the world#39;s edge?(我可以防止将传单地图平移出世界边缘吗?)
问题描述
有没有办法限制平移出世界边缘?在这张照片上,棕色是世界,灰色是空虚.我想让它不可能像这样平移.
Is there a way to limit panning out of the world's edge? On this picture, brown is the world, grey is emptiness. I want to make it impossible to pan like this.
推荐答案
Leaflet 允许您使用 maxBoundsViscosity
选项(值:0 到 1)控制地图抵抗被拖出边界的程度.将其设置为最大值将完全禁用拖出边界.
Leaflet allows you to control how much the map resists being dragged out of bounds with the maxBoundsViscosity
option (value: 0 to 1). Setting it to maximum disables dragging out of bounds entirely.
var map = new L.Map('map', {
center: bounds.getCenter(),
zoom: 5,
layers: [osm],
maxBounds: bounds,
maxBoundsViscosity: 1.0
});
此功能在 1.0.0 中可用.相关拉取请求 包括 一个工作示例:
This feature is available in 1.0.0. The relevant pull request includes a working example:
var osmUrl = 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
osmAttrib = '© <a href="http://openstreetmap.org/copyright">OpenStreetMap</a> contributors',
osm1 = L.tileLayer(osmUrl, {
maxZoom: 18,
attribution: osmAttrib
}),
osm2 = L.tileLayer(osmUrl, {
maxZoom: 18,
attribution: osmAttrib
}),
bounds = new L.LatLngBounds(new L.LatLng(49.5, -11.3), new L.LatLng(61.2, 2.5));
var map1 = new L.Map('map1', {
center: bounds.getCenter(),
zoom: 5,
layers: [osm1],
maxBounds: bounds,
maxBoundsViscosity: 0.75
});
var map2 = new L.Map('map2', {
center: bounds.getCenter(),
zoom: 5,
layers: [osm2],
maxBounds: bounds,
maxBoundsViscosity: 1.0
});
var latlngs = L.rectangle(bounds).getLatLngs();
L.polyline(latlngs[0].concat(latlngs[0][0])).addTo(map1);
L.polyline(latlngs[0].concat(latlngs[0][0])).addTo(map2);
html,
body,
#map {
margin: 0;
padding: 0;
width: 100%;
height: 100%;
}
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.0.0/dist/leaflet.css" />
<script src="https://unpkg.com/leaflet@1.0.0/dist/leaflet.js"></script>
<h1>Left: Bouncy maxBounds. Right: Not bouncy.</h1>
<div id="map1" style="float: left; width:45%; height: 80%;"></div>
<div id="map2" style="float: left; width:45%; height: 80%;"></div>
这篇关于我可以防止将传单地图平移出世界边缘吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:我可以防止将传单地图平移出世界边缘吗?
- 失败的 Canvas 360 jquery 插件 2022-01-01
- CSS媒体查询(最大高度)不起作用,但为什么? 2022-01-01
- 如何使用 JSON 格式的 jQuery AJAX 从 .cfm 页面输出查 2022-01-01
- addEventListener 在 IE 11 中不起作用 2022-01-01
- Css:将嵌套元素定位在父元素边界之外一点 2022-09-07
- Quasar 2+Apollo:错误:找不到ID为默认的Apollo客户端。如果您在组件设置之外,请使用ProvideApolloClient() 2022-01-01
- Flexslider 箭头未正确显示 2022-01-01
- Fetch API 如何获取响应体? 2022-01-01
- 使用RSelum从网站(报纸档案)中抓取多个网页 2022-09-06
- 400或500级别的HTTP响应 2022-01-01