Ol3 में वेक्टर लेयर में मैन्युअल रूप से फीचर जोड़ें


16

मैं जावास्क्रिप्ट के साथ एक वेक्टर परत में मैन्युअल रूप से एक परत जोड़ने की कोशिश कर रहा हूं। मैं यह निर्धारित नहीं कर सकता कि यह क्यों विफल हो रहा है:

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

मैंने दृश्य के xy मानों से मिलान करने के लिए 16,22 और बड़े लोगों की तरह सेंस कोऑर्डिनेट करने की कोशिश की है। मुझे ol3 से एक जावास्क्रिप्ट त्रुटि मिलती है: TypeError: bQ एक फ़ंक्शन नहीं है।

HTML:

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

जावास्क्रिप्ट:

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: Failure: unsupported stride: undefined" मिलता है
Kieveli

2
आप स्रोत में एक ज्यामिति जोड़ने की कोशिश कर रहे हैं। इसे ol.Featureपहली बार में लपेटें ।
गाबोर फार्कस

1
अच्छा! मुझे अक्षांश / दीर्घ से y / x में रूपांतरण भी याद आ रहा था।
फिडिंग

जवाबों:


22

जैसा कि गैबोर फार्कस ने कहा, मैं ज्यामिति को जोड़ रहा था और स्रोत को कोई सुविधा नहीं। मैं ज्यामिति के निर्देशांक पर भी गायब था, और ठीक से परिवर्तित नहीं हो रहा था। यहाँ से बाहर, मैं y / x के बजाय x / y के रूप में lat / long का उपयोग कर रहा था। अपडेटेड फ़िडेल:

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 );
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.