gpt4 book ai didi

javascript - 如何在没有鼠标事件的情况下在openlayers中从其他世界找到当前世界中的等效坐标

转载 作者:行者123 更新时间:2023-11-30 13:59:50 25 4
gpt4 key购买 nike

我有一张 OpenLayers map ,每个世界都有一个 Polygon。我在 View 中添加了一个动画,单击按钮时平移到多边形。

问题是如果用户不在多边形几何体所在的世界,动画会将用户带到多边形的原始世界。

我不希望这种情况发生,如果用户在左侧或右侧的第 n 个世界中,平移到多边形应该只发生在那个特定的世界中。

我正在使用 polygon.getGeometry().getInteriorPoint().getCoordinates() 获取多边形的中点,然后将其设置为 center ol.View()。现在,由于多边形几何体位于第 0 个世界, View 的中心总是落在那个世界,因此 map 平移就是那个特定的世界。

有什么方法可以从另一个世界的多边形中点计算当前世界的坐标吗?我认为这会解决问题。

这是我正在尝试的:current output

最佳答案

这将适用于当前世界(如日期变更线所定义)。由于您的几何图形相对接近日期变更线,因此它可能不是最短路线。

    var point = t.getGeometry().getInteriorPoint().clone();
var worldWidth = ol.extent.getWidth(view.getProjection().getExtent());
var currentWorld = Math.round(view.getCenter()[0]/worldWidth);
point.translate(currentWorld * worldWidth, 0);
view.animate({
center: point.getCoordinates(),
duration: 1200
});

关于javascript - 如何在没有鼠标事件的情况下在openlayers中从其他世界找到当前世界中的等效坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56496967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com