的OpenLayers无法在地图上添加多边形要素[关闭]

问题描述 投票:-1回答:2

我想加上的OpenLayers地图多边形,但它没有被渲染。我曾尝试变换多边形的点太多,但仍然在控制台没有输出任何错误。不知道什么是被错误由我练。请点我的方向。

Here is a fiddleopenlayers polygon demo

openlayers openlayers-3 openlayers-5
2个回答
3
投票

需要对多边形的坐标一组额外的[]的,并且更容易改变整个几何形状,而不是单独的坐标

var data=[[119.76574, 24.21667], [118.03333, 24.21667], [118.03333, 25.78333], [120.55, 25.78333], [120.55, 24.21667], [119.85674, 24.21667], [119.76574, 24.21667]];

var polygon = new ol.Feature({
  type: 'Polygon',
  geometry: new ol.geom.Polygon([data]).transform('EPSG:4326','EPSG:3857'),
  desc: "Description" + "<br>" + "This is on of the ENC"
});

0
投票

你有转换和几何创建一个问题。选中此更正后的代码:

    var data = [[119.76574, 24.21667], [118.03333, 24.21667], [118.03333, 25.78333], [120.55, 25.78333], [120.55, 24.21667], [119.85674, 24.21667], [119.76574, 24.21667]];

    data.forEach(function (item) {
        var newItem = ol.proj.transform(item, 'EPSG:4326', 'EPSG:3857');
        item[0] = newItem[0];
        item[1] = newItem[1];
    });

    var polygon = new ol.Feature({
        type: 'Polygon',
        geometry: new ol.geom.Polygon([data]),
        desc: "Description" + "<br>" + "This is on of the ENC"
    });
    polygon.setStyle(polygonOptions);
    drawingSource.addFeature(polygon);
© www.soinside.com 2019 - 2024. All rights reserved.