Почему многоугольник не отображается на карте? - PullRequest
0 голосов
/ 02 марта 2020

Я хочу нарисовать многоугольник на карте, используя OpenLayers 6. Вот как я это сделал, используя openlayers 2, и он отлично работает:

return new OpenLayers.Geometry.Polygon([new OpenLayers.Geometry.LinearRing(pointsArr)]);

Вот как я пытаюсь это сделать в OpenLayers 6:

   function getShapeObject(raw) {
    var coordinates = [];
    raw.GeometryHlp.StrPoints.forEach(function (item, index, array) {
        coordinates.push([item.X, item.Y]);
    });
        return new LinearRing(coordinates);
    }

где координаты - это массив, который выглядит следующим образом: ([x,y],[x1,y1],[x2,y2]...)

Когда я пытаюсь нарисовать многоугольник на открытых слоях 6, многоугольник не отображается, и я не получаю какие-либо ошибки в консоли.

Вы понимаете, что я делаю неправильно? Почему полигон не отображается?

1 Ответ

2 голосов
/ 02 марта 2020

Вы не можете отобразить LinearRing. Используйте другую пару [] и создайте полигон:

return new Polygon([coordinates]);
...