簡體   English   中英

沿現有要素延伸 LineString/MultiLineString

[英]Extending LineString/MultiLineString along existing Feature

我已經給出了兩個點的坐標。 我可以繪制一個連接這兩點的 LineString。 我想要實現的是擁有一個連接點的 LineString/MultiLineString,但它也稍微長一點(比方說比這兩點之間的距離長 20%),並且它僅在一個點后延長。

我目前擁有的: 在此處輸入圖像描述

我想要實現的目標: 在此處輸入圖像描述

我的問題是我不知道如何找到第三點的 position,它表示行尾。 它應該在給定距離內准確地沿着現有線放置。 任何一種 map 投影都不重要,因為我只想有一條永遠筆直的線。

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])
});

這是工作小提琴

最簡單的方法是縮放幾何圖形,例如,從markerOnemarkerTwo的線串增加 20%,縮放固定在markerOne處,因此線延伸到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());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM