Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 沿现有要素延伸线串/多线串_Javascript_Openlayers_Openlayers 6 - Fatal编程技术网

Javascript 沿现有要素延伸线串/多线串

Javascript 沿现有要素延伸线串/多线串,javascript,openlayers,openlayers-6,Javascript,Openlayers,Openlayers 6,我已经给出了两点的坐标。我可以画一条连接这两点的线串。我想要实现的是有一个连接点的线串/多重线串,但它也稍微长一点(比方说比这两个点之间的距离长20%),并且只在一个点后延伸 我目前拥有的: 我想要达到的目标: 我的问题是,我不知道如何找到第三点的位置,这将表明线的终点。应在给定距离内沿既有线路准确放置。任何一种地图投影都不重要,因为我只想有一条永远是直的线 const markerOne = new ol.Feature({ geometry: new ol.geom.Point([-

我已经给出了两点的坐标。我可以画一条连接这两点的线串。我想要实现的是有一个连接点的线串/多重线串,但它也稍微长一点(比方说比这两个点之间的距离长20%),并且只在一个点后延伸

我目前拥有的:

我想要达到的目标:

我的问题是,我不知道如何找到第三点的位置,这将表明线的终点。应在给定距离内沿既有线路准确放置。任何一种地图投影都不重要,因为我只想有一条永远是直的线

const markerOne = new ol.Feature({
  geometry: new ol.geom.Point([-1000, -1000])
});

const markerTwo = new ol.Feature({
  geometry: new ol.geom.Point([1000, 1000])
});

const lineStrEnd = ?;

const lineStr = new ol.Feature({
 geometry: new ol.geom.LineString([markerOne.getGeometry().getCoordinates(), lineStrEnd])
});

最简单的方法是缩放几何体,例如,从
markerOne
markerTwo
的线串在
markerOne
锚定缩放时增加20%,因此线范围超出
markerTwo

const lineStr = new ol.Feature({
 geometry: new ol.geom.LineString([markerOne.getGeometry().getCoordinates(), markerTwo.getGeometry().getCoordinates()])
});

lineStr.getGeometry().scale(1.2, 1.2, markerOne.getGeometry().getCoordinates());

对于我的用例来说,这是一个完美的答案。非常感谢。