Leaflet 启用nowrap时设置地图边界/边

Leaflet 启用nowrap时设置地图边界/边,leaflet,bounds,Leaflet,Bounds,有没有办法调整地图的边界,这样俄罗斯的右边缘就不会出现在左边?你可以在图片中看到,我有一个覆盖俄罗斯的多边形区域,但地图和覆盖区域是分开的。如果可能的话,我希望这个国家的一小块土地在右边 俄罗斯的边缘在地图的错误一侧: 欢迎来到SO 如果你的多多边形是蓝色区域,那么我担心你必须重构你的数据以达到你想要的(将左侧区域移到右侧,好像它被缝合回俄罗斯主大陆) 您的数据(可能是GeoJSON?)包含一个单独的多边形,其经度在[-180,-120]范围内。传单别无选择,只能独立于noWrap选项显示在地图

有没有办法调整地图的边界,这样俄罗斯的右边缘就不会出现在左边?你可以在图片中看到,我有一个覆盖俄罗斯的多边形区域,但地图和覆盖区域是分开的。如果可能的话,我希望这个国家的一小块土地在右边

俄罗斯的边缘在地图的错误一侧:

欢迎来到SO

如果你的多多边形是蓝色区域,那么我担心你必须重构你的数据以达到你想要的(将左侧区域移到右侧,好像它被缝合回俄罗斯主大陆)

您的数据(可能是GeoJSON?)包含一个单独的多边形,其经度在[-180,-120]范围内。传单别无选择,只能独立于
noWrap
选项显示在地图左侧

因此,您需要深入挖掘数据,并将360度经度添加到此多边形的每个节点,以便它们现在位于[180300]范围内

或者在代码中引入一个“检测”,它会自动为边界和/或中心距离较远的形状执行经度相加(比如在[-180,-120]经度范围内)。传单不会在开箱即用的情况下自动执行该操作


注意:
noWrap
选项用于您的平铺层不在“中心”世界之外加载平铺(以避免显示世界的多个副本)。但是在你的例子中,你想在“世界的相邻副本”上显示俄罗斯/西伯利亚的一部分,因此你可能想删除该选项,否则你的多边形将不会位于任何底图之上。

我可以想到的一个解决方法是使用该属性,在该属性中,你可以将默认边界稍微向右移动,以及
最小缩放:1
。这不会阻止用户在短时间内多次看到世界,如果将其缩小到远处/向外平移,正如上面所说:

。。。当用户尝试在视图外平移时将其反弹回来


我想我的问题是,在世界地图的相邻副本中,俄罗斯的一小部分地区。有没有办法把它移到另一张地图上?有效地将地图的视口向右移动了一点点。是否可以确定我可以查看此地图的边界框的“顶部、左侧”和“底部、右侧”是什么?至于导航/交互,请使用地图的
maxBounds
选项参考chrki的答案。至于从“中央世界”的瓷砖中隐藏西伯利亚并在“右侧世界”中显示它,您可能会对插件感兴趣。至于移动多边形,如上面的回答所述,您可以重构数据,或者尝试对需要向东360度移动的远西多边形进行“检测”(您可以将360度添加到GeoJSON数据中的每个经度坐标中)。感谢您的添加。我喜欢这种在拖动时强制在地图上反弹的方式。不幸的是,这并不能解决我最初的问题,但我的代码中仍包含此功能:)
var map = L.map('map',{ 
  maxBounds:[ [-90, -160], [90, 200] ],
  minZoom: 1
  }).setView([66.058, 189.459], 4);