【问题标题】:Leaflet.js shrink getBounds()Leaflet.js 收缩 getBounds()
【发布时间】:2015-10-23 14:27:42
【问题描述】:

Leafletjs 有一个函数 pad(x) 用于增加 latLng 边界。我如何缩小它?我尝试在其中输入一个负数,但收效甚微。

我基本上是在尝试查看标记是否在当前视图内,如果不在该标记的中心。但是有些标记可以绘制在视图的边缘,并且仍然被归类为视图。我正在尝试在当前视口边界上添加 inner 填充以避免这种情况。

if(!map.getBounds().pad(-1.5).contains(marker.getLatLng()))

【问题讨论】:

    标签: leaflet gis


    【解决方案1】:

    您可以使用L.MapfitBounds方法的paddingTopLeftpaddingBottomRightpadding选项:

    设置地图容器左上角的填充量,在将视图设置为适合边界时不应考虑该填充量。如果您在地图上有一些控制叠加层(例如侧边栏)并且您不希望它们遮挡您正在缩放到的对象,这很有用。

    http://leafletjs.com/reference.html#map-paddingtopleft

    map.fitBounds(layer, {'padding': [n, n]})
    

    【讨论】:

      【解决方案2】:

      pad() 的负值范围是 0 到 -0.5。

      https://github.com/Leaflet/Leaflet/issues/5741

      编辑:链接基本上指出 pad 采用 1 的比率,而不是典型的百分比值。因此,要将边界减少 50%(这会在视觉上使其变为 0,因为左边界会在 50% 到中间,而右边界也会在 50% 到中间,等等)参数值将是垫(-0.5)不是垫(-50)

      增加正比例。

      【讨论】:

      • 您能否在链接中包含更多细节,以便在链接损坏时有用吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 2016-12-21
      相关资源
      最近更新 更多