web-dev-qa-db-fra.com

OpenLayers 3: exemple simple de LineString

je suis nouveau sur OpenLayers et je cherche de l'aide pour dessiner des lignes sur une carte, j'ai essayé différentes choses à partir de différents articles sur le dessin de LineStrings mais je ne peux pas le faire fonctionner! J'ai juste besoin de comprendre comment tracer une ligne entre les coordonnées.

voici du code que j'ai essayé mais qui n'a pas fonctionné:

var points = [
    new ol.geom.Point([78.65, -32.65]),
    new ol.geom.Point([-98.65, 12.65])
  ];

var featureLine = new ol.Feature({
    geometry: new ol.geom.LineString(points)
  });

var sourceLine = new ol.source.Vector({
    features: [featureLine]
  });

var vectorLine = new ol.layer.Vector({
    source: sourceLine
  });

map.addLayer(vectorLine);

j'ai aussi essayé ça mais en vain:

var layerLine = new ol.layer.Vector({
      source: new ol.source.Vector({
          features: [new ol.Feature({
              geometry: new ol.geom.LineString(points, 'XY'),
              name: 'Line'
          })]
      }),
  });

map.addLayer(vectorLine);

quelqu'un peut me diriger dans la bonne direction? ou dites-moi où je me trompe?

EDIT: grâce à Jonatas, le code de travail ressemble à ceci:

  var coordinates = [[78.65, -32.65], [-98.65, 12.65]]; 

  var layerLines = new ol.layer.Vector({
      source: new ol.source.Vector({
          features: [new ol.Feature({
              geometry: new ol.geom.LineString(coordinates),
              name: 'Line'
          })]
      }),
  });

  map.addLayer(layerLines);
13
ThriceGood

Changez juste ceci:

var points = [
    new ol.geom.Point([78.65, -32.65]),
    new ol.geom.Point([-98.65, 12.65])
];

À:

var points = [
    [78.65, -32.65], [-98.65, 12.65]
];

Le constructeur ol.geom.LineString accepte un tableau de coordonnées.

13
Jonatas Walker