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