web-dev-qa-db-ja.com

OpenLayers 3:単純なLineStringの例

私はOpenLayersを初めて使用し、地図上に線を描画するためのヘルプを探しています。LineStringの描画に関するさまざまな投稿からさまざまなことを試してきましたが、機能しません!座標との間に線を引く方法を理解する必要があります。

私が試したが機能しなかったいくつかのコードを以下に示します:

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);

私もこれを試しましたが、役に立ちませんでした:

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);

誰かが私を正しい方向に向けることができますか?または私がどこで間違っているのか教えてください?

編集:Jonatasのおかげで、作業コードは次のようになります:

  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

これを変更するだけです:

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

ol.geom.LineString コンストラクタは、座標の配列を受け入れます。

13
Jonatas Walker