【问题标题】:Here Maps API JavaScript zoom into bounds with margin此处 Maps API JavaScript 以边距放大边界
【发布时间】:2019-12-10 13:04:30
【问题描述】:

我在一个组中有几个标记,我想放大,所以它们都可见。

有了 mapsjs 3.0 版,我可以做到这一点:

var cameraData = map.getCameraDataForBounds(group.getBounds());
map.setZoom(cameraData.zoom - 0.5, true);
map.setCenter(cameraData.position, true);

在 3.1 版中,getCameraDataForBounds 被删除,documentation 告诉我这样做:

map.getViewModel().setLookAtData({
  bounds: group.getBoundingBox()
}, true);

我的问题是,使用新方法时,标记非常靠近边缘。使用 3.0 方式,我可以通过简单地调整缩放级别来添加一些边距。这在 3.1 中似乎是不可能的,因为我似乎找不到 getCameraDataForBounds 的替代品。

放大然后缩小,看起来很hacky并且杀死了我的动画。我尝试扩大边界框,但找不到可靠的方法。

任何关于如何存档的建议将不胜感激。

【问题讨论】:

    标签: javascript here-api


    【解决方案1】:

    对于这种情况,您可以在创建新 Map 实例时简单地使用填充选项:

    // assuming htmlElement and baseLayer exist
    var map = new H.Map(htmlElement, baseLayer, {
      ...
      padding: {top: 50, left: 50, bottom: 50, right: 50}
    });
    

    或动态设置填充:

    map.getViewPort().setPadding(50, 50, 50, 50)
    

    这里更新了jsfiddle 示例。

    有关详细信息,请参阅 Map#OptionsViewPort#setPadding 文档。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-14
      • 2014-07-09
      • 2013-03-01
      • 2021-11-24
      • 2013-12-26
      • 1970-01-01
      • 1970-01-01
      • 2018-01-03
      相关资源
      最近更新 更多