Openlayers将LineString类型的GeoJSON数据(闭合的多段线)转化为Polygon类型的feature要素


1.前言

现在需要将cad的dxf数据转化为GeoJSON格式的数据,使用在线工具http://ogre.adc4gis.com/转完之后发现了一个问题,那就是在cad中闭合的面转成GeoJSON后都成了LineString类型的多段线,所以需要进行处理一下。

 

 

 

 

 

 

 

 

 

 

2.方法

2.1思路

(1)将LineString类型的GeoJSON读取成features

(2)获取每个feature的坐标串Coordinates

(3)利用坐标串创建新的Polygon类型的feature

(4)最后将features再读取成GeoJSON

2,2代码实现

        let oljson = new ol.format.GeoJSON()
        let features = oljson.readFeatures(GeoJSON);
        let newFeatures=[];
        for (let i=0;i<features.length;i++){
          if (features[i].getGeometry().getType()!='Polygon'&&features[i].getGeometry().getType()=='LineString'){
            let coordinates=features[i].getGeometry().getCoordinates();
            let feature=new ol.Feature({
              geometry:new ol.geom.Polygon([coordinates]),
              name:'Polygon'
            })
            newFeatures.push(feature);
          }
          else {
            newFeatures.push(features[i]);
          }
        }
        //将处理好的features再转化为geojson
        let newGeoJSON=oljson.writeFeaturesObject(newFeatures);    

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM