2017-08-04 73 views
1
plotBaseLayer (data) { 
    this.setState({ data: data }) 

    const baseFeatures = [] 
    let baseLayer = Object() 

    Object.keys(data.features).forEach((key) => { 
     const basePoints = new olFeature({ 
     geometry: new olGeomPoint(olProj.transform(
      [data.features[key].geometry.coordinates[0], data.features[key].geometry.coordinates[1]], 
      'EPSG:4326', MapHandler.map.getView().getProjection().getCode()) 
     ) 
     }) 

     baseFeatures.push(basePoints) 
     const vectorSource = new olSourceVector() 

     vectorSource.addFeature(basePoints) 
     baseLayer = new olLayerVector({ source: vectorSource }) 

     this.map.addLayer(baseLayer) 
    }) 
    } 

目前,我將每個點添加到一個功能,並單獨將該功能添加到地圖作爲單獨的圖層。我如何構建我的代碼和/或利用替代的Openlayers功能來將所有點繪製爲單個圖層?感謝您的期待!添加Openlayers指向地圖作爲單層

回答

1

這可能是工作嗎?

plotBaseLayer(data) { 
    this.setState({ 
     data: data 
    }) 
    const baseFeatures = [] 
    let baseLayer = Object() 
    Object.keys(data.features).forEach((key) => { 
      const basePoints = new olFeature({ 
        geometry: new olGeomPoint(olProj.transform(
          [data.features[key].geometry.coordinates[0], data.features[key].geometry.coordinates[1]], 
          'EPSG:4326', MapHandler.map.getView().getProjection().getCode())) 
       }) 
       baseFeatures.push(basePoints) 
    }) 

    const vectorSource = new ol.source.Vector({ 
     features: baseFeatures 
    }); 


    baseLayer = new olLayerVector({ 
      source: vectorSource 
    }) 
    this.map.addLayer(baseLayer) 
} 
+1

如果只是這麼簡單。不過謝謝。 – Digfield

+0

我修改了代碼,你可以試試這個嗎? @Digfield(查看vectorSource) – ylka

+0

@yika,你是對的!恭喜,你已經賺了50+ :) – Digfield

相關問題