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);