将给定的点移动X,Y米到Openlayers

将给定的点移动X,Y米到Openlayers,openlayers,openlayers-6,Openlayers,Openlayers 6,我目前需要计算一个新的点(经度和纬度)从一个给定的点和X和Y偏移米Openlayers。我尝试使用ol/geom/Point类上已有的函数,但结果看起来不正确,因为结果位置与预期不同 我的问题是在ol上是否有其他方法来计算所需的位置。 我正在使用OL6.0.3 谢谢。万维网墨卡托不是公制的。。。极点的距离是无限的 对于小距离,必须计算点处的分辨率: import {getPointResolution} from '../src/ol/proj.js'; let pointRes = getPo

我目前需要计算一个新的点(经度和纬度)从一个给定的点和X和Y偏移米Openlayers。我尝试使用ol/geom/Point类上已有的函数,但结果看起来不正确,因为结果位置与预期不同

我的问题是在ol上是否有其他方法来计算所需的位置。 我正在使用OL6.0.3


谢谢。

万维网墨卡托不是公制的。。。极点的距离是无限的

对于小距离,必须计算点处的分辨率:

import {getPointResolution} from '../src/ol/proj.js';
let pointRes = getPointResolution(map.getView().getProjection(), 1, point);
let dx = 500 / pointRes;
point.translate(dx, 0);
对于较大的距离,必须计算球体上沿大圆的距离。
您可以查看ol ext lib来计算给定初始点、距离和方向角的目标点:使用。

偏移必须与点坐标使用相同的单位,因此无法将米直接添加到经度和纬度,您需要将坐标转换为公制投影,添加偏移量,然后变换回经度和纬度。还要注意,有些公制投影并非在所有位置都是真实比例(例如,EPSG:3857 web mercator投影上的一米仅在赤道处是真实的)。嘿@Mike,我目前在地图视图上使用默认的web mercator投影(EPSG:3857),根据这是公制投影,我仍然没有得到正确的结果。我现在做的是:var point=new
point(fromlont([-76.091308,18.427501])然后应用翻译
点翻译(500,0)但新点坐标与预期值不匹配。我做错了什么?getPointResolution需要点的坐标
let pointRes=getPointResolution(map.getView().getProjection(),1,point.getCoordinates())