OpenLayers 5.3: почему не рисует мой полигон? - PullRequest
0 голосов
/ 22 ноября 2018

Это код:

drawPoligon : function (vertices) {
    debugger;
    var map = peaMap;
    var feature = new ol.Feature({
        geometry: new ol.geom.Polygon([vertices])
    });

    var vectorSource= new ol.source.Vector({
        features: [feature ]
    });
    var vectorLayer = new ol.layer.Vector({
        source: vectorSource
    });
    map.addLayer(vectorLayer);

}
vertices = [1253906.08982072, 5430790.35506443, 1253935.16019819, 5430769.74133789, 1253951.90741865, 5430793.82802342, 1253955.42311216........]

Формат массива моих координат:

[
  [1253906.08982072,5430790.35506443],
  [1253935.16019819,5430769.74133789],
  [1253951.90741865,5430793.82802342],
  [1253955.42311216,5430798.88815272],
  [1253953.91064413,5430800.28580152],
  [1253952.03520923,5430801.40886153],
  [1253945.88800332,5430791.50307534],
  [1253936.62615957,5430797.3914173]
]

... Список координат не полный.Только часть его для воздействия.

1 Ответ

0 голосов
/ 22 ноября 2018

Формат [[lon, lat],…] правильный.С большим увеличением вы можете увидеть результат:

var osmLayer = new ol.layer.Tile({
    source: new ol.source.OSM()
  });

  var vertices = [
    [1253906.08982072, 5430790.35506443],
    [1253935.16019819, 5430769.74133789],
    [1253951.90741865, 5430793.82802342],
    [1253955.42311216, 5430798.88815272],
    [1253953.91064413, 5430800.28580152],
    [1253952.03520923, 5430801.40886153],
    [1253945.88800332, 5430791.50307534],
    [1253936.62615957, 5430797.3914173]
  ];

  var feature = new ol.Feature({
    geometry: new ol.geom.Polygon([vertices])
  });

  var vectorSource = new ol.source.Vector({
    features: [feature]
  });
  var vectorLayer = new ol.layer.Vector({
    source: vectorSource,
    style: new ol.style.Style({
      stroke: new ol.style.Stroke({
        width: 2,
        color: [255, 0, 0]
      })
    })
  });

  var map = new ol.Map({
    layers: [osmLayer, vectorLayer],
    target: document.getElementById("map"),
    view: new ol.View({
      center: [1253950, 5430800],
      zoom: 20
    })
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...