Openlayers 3 基于线字符串显示区域覆盖

Openlayers 3 基于线字符串显示区域覆盖,openlayers-3,Openlayers 3,我想做的是显示被某人覆盖的区域。例如,一个搜索小组穿过一块田地,一个人可以看到大约50米左右的东西。所以我想显示一个宽度为100米的多边形,以及已经走过的路径的长度。我需要以图形方式和面积测量方式显示这一点 我实现这一点的最佳方法是创建一条线串,然后通过某种方式将点a的线与点B的线成90度角来创建一个多边形。类似于: | | | | Point A +-----------------+ Poi

我想做的是显示被某人覆盖的区域。例如,一个搜索小组穿过一块田地,一个人可以看到大约50米左右的东西。所以我想显示一个宽度为100米的多边形,以及已经走过的路径的长度。我需要以图形方式和面积测量方式显示这一点

我实现这一点的最佳方法是创建一条线串,然后通过某种方式将点a的线与点B的线成90度角来创建一个多边形。类似于:

         |                 |
         |                 |
Point A  +-----------------+ Point B
         |                 |
         |                 |
但是,我不知道如何从直线获取角度,以便找到创建多边形的坐标。有人知道这样做的方法吗?

看看

我使用此函数生成坐标:

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

我最终找到了解决办法。基本上,您需要使用
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();