Here Maps API JavaScript 放大边界
Here Maps API JavaScript zoom into bounds with margin
我在一组中有几个标记,我想放大,所以它们都可见。
使用 3.0 版的 mapsjs 我可以这样做:
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
.
的替代品
放大然后再缩小,看起来很老套并且会破坏我的动画效果。我尝试加宽边界框,但找不到可靠的方法。
如有任何关于如何存档的建议,我们将不胜感激。
对于这种情况,您可以在创建新地图实例时简单地使用填充选项:
// 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#Options or ViewPort#setPadding 文档。
我在一组中有几个标记,我想放大,所以它们都可见。
使用 3.0 版的 mapsjs 我可以这样做:
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
.
放大然后再缩小,看起来很老套并且会破坏我的动画效果。我尝试加宽边界框,但找不到可靠的方法。
如有任何关于如何存档的建议,我们将不胜感激。
对于这种情况,您可以在创建新地图实例时简单地使用填充选项:
// 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#Options or ViewPort#setPadding 文档。