Here api 如果仅使用边界,则ViewModel.setLookAtData()不会设置动画
我正在尝试放大单击的形状或一组形状。实际移动有效,但用于指示其设置动画的属性无效Here api 如果仅使用边界,则ViewModel.setLookAtData()不会设置动画,here-api,Here Api,我正在尝试放大单击的形状或一组形状。实际移动有效,但用于指示其设置动画的属性无效 map.getViewModel().setLookAtData({ bounds: boundingBox }, true); 这确实可以正确地移动和缩放,但没有动画。如果我添加了一个特定的缩放级别,它会按照预期的方式进行动画制作,但我需要它为我确定缩放级别 如果我能想出任何可靠的方法来手动计算缩放级别,我可能会伪造它,但这并不理想。无论出于什么原因,仅使用边界都会破坏允许动画的功能。对此的任何解决方法?
map.getViewModel().setLookAtData({
bounds: boundingBox
}, true);
这确实可以正确地移动和缩放,但没有动画。如果我添加了一个特定的缩放级别,它会按照预期的方式进行动画制作,但我需要它为我确定缩放级别
如果我能想出任何可靠的方法来手动计算缩放级别,我可能会伪造它,但这并不理想。无论出于什么原因,仅使用边界都会破坏允许动画的功能。对此的任何解决方法?映射实例方法,如setZoom()、setCenter()和setViewBounds()接受第二个参数,指示是否应应用动画转换 我们建议不要创建您自己的缩放动画,如下面的代码段所示:
// Assumption: 'map' is initialized and available.
var currentZoom = map.getZoom();
var endZoom = currentZoom + 3;
// Update zoom level on each animation frame,
// till we reach endZoom:
function step() {
currentZoom += 0.05;
map.setZoom(currentZoom);
(currentZoom < endZoom) && requestAnimationFrame(step);
}
// Start zoom animation
step();
//假设:“映射”已初始化且可用。
var currentZoom=map.getZoom();
var endZoom=currentZoom+3;
//更新每个动画帧上的缩放级别,
//在我们到达终点之前:
函数步骤(){
currentZoom+=0.05;
map.setZoom(当前缩放);
(currentZoom
相反,使用可选的第二个参数调用方法setZoom(),以执行动画:
/***假设:“映射”已初始化且可用*///调用
getZoom()带有可选的第二个参数,//表示
要执行的动画:map.setZoom(map.getZoom()+3,true)
setZoom()、setCenter()和setViewBounds()等映射实例方法接受第二个参数,指示是否应应用动画转换 我们建议不要创建您自己的缩放动画,如下面的代码段所示:
// Assumption: 'map' is initialized and available.
var currentZoom = map.getZoom();
var endZoom = currentZoom + 3;
// Update zoom level on each animation frame,
// till we reach endZoom:
function step() {
currentZoom += 0.05;
map.setZoom(currentZoom);
(currentZoom < endZoom) && requestAnimationFrame(step);
}
// Start zoom animation
step();
//假设:“映射”已初始化且可用。
var currentZoom=map.getZoom();
var endZoom=currentZoom+3;
//更新每个动画帧上的缩放级别,
//在我们到达终点之前:
函数步骤(){
currentZoom+=0.05;
map.setZoom(当前缩放);
(currentZoom
相反,使用可选的第二个参数调用方法setZoom(),以执行动画:
/***假设:“映射”已初始化且可用*///调用
getZoom()带有可选的第二个参数,//表示
要执行的动画:map.setZoom(map.getZoom()+3,true)
可能的解决方法:如果通过边界质心,则似乎有效:
let data = {bounds: bounds, position: bounds.getCenter() };
map.getViewModel().setLookAtData(data, opt_animate);
可能的解决方法:如果通过边界质心,则似乎有效:
let data = {bounds: bounds, position: bounds.getCenter() };
map.getViewModel().setLookAtData(data, opt_animate);
谢谢你的回复,但这并不能解决这个问题。让我澄清一下。。。我知道我的边界。我正在使用setLookAtData()缩放到该区域。这是可行的,但是animate标志(我在上面的例子中设置为true)不起作用。除非我指定缩放,否则它不会设置动画。这会适得其反,因为我正在使用它为我计算缩放级别。这似乎是函数中的一个bug,在这个特定场景中不起作用。我不能像你描述的那样使用setZoom,因为我缺少endZoom的重要价值。你能分享一下JS API的版本吗?是3.0还是3.1?请你也参考下面的例子:是的。我正在从这个URL加载3.1版。。。(以及服务、ui、mapevents和css)我使用了您引用的示例。它工作得很好,因为我只看到了只使用边界框而不显式提供缩放值时的错误。当以这种方式调用时,它会移动到所需的缩放和位置,但不会设置动画。具有相同的问题。以下代码行不设置动画:
map.getViewModel().setLookAtData({bounds:boundingBox},true)代码>相同的错误。setLookAtData(绑定,动画);动画参数被忽略。谢谢你的回复,但这并不能解决这个问题。让我澄清一下。。。我知道我的边界。我正在使用setLookAtData()缩放到该区域。这是可行的,但是animate标志(我在上面的例子中设置为true)不起作用。除非我指定缩放,否则它不会设置动画。这会适得其反,因为我正在使用它为我计算缩放级别。这似乎是函数中的一个bug,在这个特定场景中不起作用。我不能像你描述的那样使用setZoom,因为我缺少endZoom的重要价值。你能分享一下JS API的版本吗?是3.0还是3.1?请你也参考下面的例子:是的。我正在从这个URL加载3.1版。。。(以及服务、ui、mapevents和css)我使用了您引用的示例。它工作得很好,因为我只看到了只使用边界框而不显式提供缩放值时的错误。当以这种方式调用时,它会移动到所需的缩放和位置,但不会设置动画。具有相同的问题。以下代码行不设置动画:map.getViewModel().setLookAtData({bounds:boundingBox},true)代码>相同的错误。setLookAtData(绑定,动画);动画参数被忽略。它看起来像API中的问题。团队已经意识到这一点,并将在不久的将来提供修复。@Tomas对此有任何更新。似乎仍与最新版本有冲突…很抱歉,此问题尚未解决。一旦修复程序发布,我会告诉你的。它看起来像是API中的一个问题。团队已经意识到这一点,并将在不久的将来提供修复。@Tomas对此有任何更新。似乎仍与最新版本有冲突…很抱歉,此问题尚未解决。一旦修复程序发布,我会告诉你的。