我要做的是显示某人所覆盖的区域。例如,一个搜索团队走过一个领域,一个人可以看到大约50米。所以我想要显示一个宽度为100米的多边形和已经走过的路径的长度。我需要以图形和面积测量方式显示它。
我必须实现这个的最好的想法是创建一个线串,然后通过某种方式将点从A点的线设置为点B,从而创建一个多边形。这样的事情:
| |
| |
Point A +-----------------+ Point B
| |
| |
但是,我不知道如何从线上获取角度以找到创建多边形的坐标。有谁知道这样做的方法?
答案 0 :(得分:1)
我最终找到了解决方案。基本上你需要使用ol.geom.Polygon.fromCircle
。如果将点数设置为2,它将为您提供一条水平线,您可以将其旋转到标题方向。
var theCircle = new ol.geom.Circle(theMarker.getCoordinates(), Radius);
var polyCircle = new ol.geom.Polygon.fromCircle(theCircle, 2, heading);
var polyCircleCoords = polyCircle.getCoordinates();
答案 1 :(得分:0)
看看this example。
我使用此函数生成坐标:
function rotate(xCoord, yCoord, angle, length) {
length = typeof length !== 'undefined' ? length : 10;
angle = angle * Math.PI / 180; // if you're using degrees instead of radians
return [
length * Math.cos(angle) + xCoord,
length * Math.sin(angle) + yCoord
];
}