2017-08-04 43 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

相关问题