ol3のベクターレイヤーに手動で機能を追加する


16

JavaScriptを使用してベクターレイヤーに手動でレイヤーを追加しようとしています。私はこれが失敗している理由を判断できないようです:

http://jsfiddle.net/Kieveli/f4t6n6v1/4/

私は、16,22のような健全な座標と、ビューのxy値に一致する大きな座標を試しました。ol3からjavascriptエラーが表示されます。TypeError:bQは関数ではありません。

HTML:

<div id="map" class="map"></div>

Javascript:

var vectorSource = new ol.source.Vector({});

var map = new ol.Map({
  layers: [
      new ol.layer.Tile({
          source: new ol.source.MapQuest({layer: 'sat'})
      }),
      new ol.layer.Vector({
          source: vectorSource
      })
  ],
  target: 'map',
  view: new ol.View({
    center: [-11000000, 4600000],
    zoom: 4
  })
});

var thing = new ol.geom.Polygon( [ [16000000,22000000],[44000000,55000000],[88000000,90000000] ] );
vectorSource.addFeature( thing );

OL3-debug.jsとするのが最良で、私は"AssertionErrorがを:失敗:サポートされていないストライド:未定義"を取得
Kieveli

2
ソースにジオメトリを追加しようとしています。ol.Feature最初に包みます。
ガボールファーカス

1
いいね!また、lat / longからy / xへの変換が欠落していました。フィドルの更新:jsfiddle.net/Kieveli/f4t6n6v1/7
Kieveli

回答:


22

ガボールファーカス私はソースに幾何学とできない機能を追加した、と述べました。また、ジオメトリの座標に[]がなく、適切に変換されませんでした。ここ以外では、y / xの代わりにlat / longをx / yとして使用していました。更新されたフィドル:

http://jsfiddle.net/Kieveli/f4t6n6v1/7/

HTML:

<div id="map" class="map"></div>

JAVASCRIPT:

var vectorSource = new ol.source.Vector({});

var map = new ol.Map({
  layers: [
      new ol.layer.Tile({
          source: new ol.source.MapQuest({layer: 'sat'})
      }),
      new ol.layer.Vector({
          source: vectorSource
      })
  ],
  target: 'map',
  view: new ol.View({
    center: [-11000000, 4600000],
    zoom: 4
  })
});

var thing = new ol.geom.Polygon( [[
    ol.proj.transform([-16,-22], 'EPSG:4326', 'EPSG:3857'),
    ol.proj.transform([-44,-55], 'EPSG:4326', 'EPSG:3857'),
    ol.proj.transform([-88,75], 'EPSG:4326', 'EPSG:3857')
]]);
var featurething = new ol.Feature({
    name: "Thing",
    geometry: thing
});
vectorSource.addFeature( featurething );
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.