Javascript 我能不能防止把传单地图搬离世界';s边缘?

Javascript 我能不能防止把传单地图搬离世界';s边缘?,javascript,maps,leaflet,Javascript,Maps,Leaflet,有没有办法限制在世界边缘的平移?在这幅画上,棕色是世界,灰色是空虚。我想让它不可能像这样平移 单张允许您使用maxBoundsViscosity选项(值:0到1)控制地图抵制被拖出边界的程度。将其设置为“最大值”将完全禁用向外拖动 var-map=新的L.map('map'{ center:bounds.getCenter(), 缩放:5, 层:[osm], maxBounds:bounds, 最大边界粘度:1.0 }); 这在1.0.0中提供。其中包括: var osmUrl='http:

有没有办法限制在世界边缘的平移?在这幅画上,棕色是世界,灰色是空虚。我想让它不可能像这样平移


单张允许您使用
maxBoundsViscosity
选项(值:0到1)控制地图抵制被拖出边界的程度。将其设置为“最大值”将完全禁用向外拖动

var-map=新的L.map('map'{
center:bounds.getCenter(),
缩放:5,
层:[osm],
maxBounds:bounds,
最大边界粘度:1.0
});
这在1.0.0中提供。其中包括:

var osmUrl='http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
osmAttrib='&复制;投稿人,,
osm1=L.tileLayer(osmUrl{
maxZoom:18,
署名:奥斯马特里布
}),
osm2=L.tileLayer(osmUrl{
maxZoom:18,
署名:奥斯马特里布
}),
边界=新L.LatLng边界(新L.LatLng(49.5,-11.3),新L.LatLng(61.2,2.5));
var map1=新的L.Map('map1'{
center:bounds.getCenter(),
缩放:5,
层:[osm1],
maxBounds:bounds,
最大边界粘度:0.75
});
var map2=新的L.Map('map2'{
center:bounds.getCenter(),
缩放:5,
层:[osm2],
maxBounds:bounds,
最大边界粘度: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,
身体,
#地图{
保证金:0;
填充:0;
宽度:100%;
身高:100%;
}

左:弹性最大边界。右:没有弹性。

这是我为世界地图解析的方法

var map = L.map('map').setView([51.505, -0.09], 3);
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png').addTo(map);

var southWest = L.latLng(-89.98155760646617, -180),
northEast = L.latLng(89.99346179538875, 180);
var bounds = L.latLngBounds(southWest, northEast);

map.setMaxBounds(bounds);
map.on('drag', function() {
    map.panInsideBounds(bounds, { animate: false });
});

参见版本7.0.7版本1.0.3

的工作示例,我使用
反应传单
,因此语法与上面略有不同,但认为显示一些合理的使用范围会有所帮助(上面的答案都没有这样做)

然后被渲染为

<LeafletMap
  maxBoundsViscosity={1.0}
  maxBounds={bounds}
  {...otherProps}
>


这是可能的,请查看此线程:谢谢!但有没有可能使其在平移超过限制后不返回,而是在达到限制时阻止平移?此选项是否仍然有效?我不能对你做类似的事情mapbox@gsuresh92不适用于mapbox。在这一点上,但是这个功能在1.0-beta1和更高版本中。我没有否决,但在rc3中似乎不起作用。@Cat獾谢谢。看起来他们已经重构了。不过,这一选择不再有效;“我会检查它是否是一个回归。”猫獾我错了,看起来仍然有效。这就是你所期望的吗?有没有一个标准的方法或传单功能来实现这一点?不完全是默认的,但答案中的是一种方法谢谢你的答案,这非常有效。有什么理由让LAT如此具体?我试过这个,即使当hughjdavey dunno在定位地球仪时得到了这些坐标,它也能工作,但是yeah 90的工作太明显了
map.on('drag',function(){map.panInsideBounds(bounds,{animate:false});})。这就是我想要阻止反弹效应的原因。非常感谢。谢谢这正是我要找的
<LeafletMap
  maxBoundsViscosity={1.0}
  maxBounds={bounds}
  {...otherProps}
>