如何解决沿现有要素扩展LineString / MultiLineString
我给出了两个点的坐标。我可以绘制连接这两个点的LineString。我想要实现的是拥有一个连接点的LineString / MultiLineString,但它还要更长一点(比这两个点之间的距离长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
的线串增加了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());
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。