有没有办法确保在做完fitbounds之后在视图中打开弹出窗口

时间:2016-11-01 15:35:06

标签: coffeescript leaflet

所以我有点意见: a =固定位置,打开弹出窗口“目的地” b =用户的当前位置,没有弹出窗口

我知道我可以轻松打电话(概念上) map.fitbound([latlng of a, latlng of b]) 这将缩放我的地图以包含两个点,麻烦的是它没有考虑打开弹出窗口。由于我不知道用户的位置,固定点的方向或距离,我认为不可能使用填充。

有关如何解决此问题的任何提示?

这是展示问题的fiddle

我看了几篇关于居中弹出窗口的帖子,但javascript对我来说有些偏差,js2coffee转换器不喜欢它。

3 个答案:

答案 0 :(得分:2)

您可以探索一种解决方案,其中弹出窗口始终可见,而无需移动地图。

例如:https://github.com/erictheise/rrose

以下是我如何使用它:http://franceimage.github.io/map

移动地图以在边缘附近放置标记,悬停或单击它,弹出窗口始终可见。

popup above popup right popup below

答案 1 :(得分:0)

  

我不认为使用填充是可能的

Yes, yes it is,例如:

  map.fitBounds(someLatLngBounds, {padding: [100, 100]});

查看working demo,不要忘记read the docs

答案 2 :(得分:0)

要使弹出窗口每次都出现在同一位置

我正在使用以下 CSS 解决方案将弹出窗口固定为始终出现在我想要的位置

<style>
    .leaflet-popup {
        transform: none !important;
        position: absolute;
        top: 600px !important;
        left: 20px !important;
    }
</style>

然后,为防止每次单击标记时都无法移动地图,请在弹出选项(https://leafletjs.com/reference-1.6.0.html#popup-autopan)中将autoPan设置为false:

 { autoPan: false }