2016-03-23 15 views
0

Özellikleri geoJson biçiminde bir servisten indirmek ve daha sonra özellikleri haritamdaki yeni bir katmana eklemek istiyorum. Özellikleri indirebilirim, indirildikten sonra haritaya nasıl ekleneceklerine bağlı kaldım. OLUŞTURMA Dosyaların indirilebileceği veya indirme işlemi bir sebepten ötürü başarısız olursa ne yapacağımı daha fazla kontrol etmek istediğim için, OL'ın dosyayı her örnekte gösterildiği gibi doğrudan url'den okumasına izin vermek istemiyorum. Bunu çalışıyorum (veri benim GeoJSON featurecollection içerir):Indirildikten sonra vektör katmanına geoJson dosyasının içeriğini ekleyin

Bu ol kütüphanesine içinde bir yerde bir hata ile sonuçlanır
var nwLayer = new ol.layer.Vector({ 
    title: 'My Title', 
    source: new ol.source.Vector({ 
     features: data.features, 
     format: new ol.format.GeoJSON() 
    }), 
    style: new ol.style.Style({ 
     image: new ol.style.Circle({ 
      radius: 7, 
      fill: new ol.style.Fill({ color: "yellow" }) 
     }) 
    }) 
}); 
map.addLayer(nwLayer); 

, görünüşe ol özellik tipi bir GeoJSON özelliği aynı değildir, bu bir getId gerektirir() işlevi. Ben de bir bütün olarak veri eklemek çalıştı:

features: data, 

Bu da hiç bir görsel etkiye sahiptir. Bunu nasıl yapabilirim?

cevap

2

Doğru değilsiniz, OpenLayer özellikleri GeoJSON özellik nesneleri değildir. GeoJSON'u OpenLayers özelliklerine dönüştürmek için ol.format.GeoJSON'un readFeatures yöntemini kullanın. senin örneğin kodunun geri kalanı ile

:

var nwLayer = new ol.layer.Vector({ 
    title: 'My Title', 
    source: new ol.source.Vector({ 
     features: (new ol.format.GeoJSON()).readFeatures(data) 
    }), 
    style: new ol.style.Style({ 
     image: new ol.style.Circle({ 
      radius: 7, 
      fill: new ol.style.Fill({ color: "yellow" }) 
     }) 
    }) 
}); 
map.addLayer(nwLayer); 
+0

Mükemmel, teşekkürler. Vector Layer ad alanında bunun gibi bir işlev arıyordum, ancak GeoJson formatındaki isim alanında bulunamadım. OL için oldukça yeni olmanın kütüphane ve belgelerin kapsamı ile biraz bunaldım. Biraz daha zamanımı aldı çünkü verilerle ilgili başka sorunlarım vardı. –

İlgili konular