Here Maps API JavaScript 带间距缩放地图视图

7

我有一组标记,我想要放大地图以便它们全部可见。

在mapsjs的3.0版本中,我可以这样做:

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

在3.1版本中,getCameraDataForBounds被删除了,文档告诉我应该这样做:

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

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

缩小然后再放大,看起来很麻烦并且会破坏我的动画效果。我尝试扩大边界框,但找不到可靠的方法。

希望能提供任何有关如何实现此目标的建议。

1个回答

15

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

// 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文档以获取更多详细信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接