เพิ่มคุณสมบัติด้วยตนเองในเลเยอร์เวกเตอร์ใน ol3


16

ฉันกำลังพยายามเพิ่มเลเยอร์ด้วยตนเองในเลเยอร์เวกเตอร์ด้วย javascript ฉันไม่สามารถระบุได้ว่าเหตุใดจึงล้มเหลว:

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

ฉันได้ลองใช้พิกัดที่มีเหตุผลเช่น 16,22 และที่ใหญ่กว่าเพื่อจับคู่ค่า xy ของมุมมอง ฉันได้รับข้อผิดพลาด javascript จาก ol3: 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ครั้งแรก
Gabor Farkas

1
ดี! ฉันยังขาดการแปลงจาก lat / long เป็น y / x การอัพเดทซอ: jsfiddle.net/Kieveli/f4t6n6v1/7
Kieveli

คำตอบ:


22

อย่างที่Gabor Farkasพูดฉันกำลังเพิ่มรูปทรงเรขาคณิตและไม่ได้เป็นคุณสมบัติของแหล่งที่มา ฉันยังขาด [] ในพิกัดของเรขาคณิตและไม่ได้แปลงอย่างถูกต้อง ด้านนอกของที่นี่ฉันใช้ละติจูด / ลองจิจูดเป็น x / y แทน y / x ซออัพเดท:

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.