GDAL是一個地理信息系統(GIS)軟件開發庫,可以用來讀取、寫入和分析各種地理空間數據格式。GDAL還提供了各種各樣的數據轉換和處理功能。其中,輸出JSON格式的數據也是非常常見的需求。
# 導入GDAL from osgeo import ogr # 打開矢量文件 driver = ogr.GetDriverByName('ESRI Shapefile') dataSource = driver.Open('/path/to/file.shp', 0) # 讀取第一個圖層 layer = dataSource.GetLayer() # 定義所有要輸出的數據類型 fieldTypes = { ogr.OFTString: 'str', ogr.OFTReal: 'float', ogr.OFTInteger: 'int' } # 遍歷所有要素 features = [] for feature in layer: # 獲取屬性 attributes = {} for i in range(feature.GetFieldCount()): fieldName = feature.GetFieldDefnRef(i).GetName() fieldType = fieldTypes[feature.GetFieldDefnRef(i).GetType()] attributes[fieldName] = fieldType(feature.GetField(i)) # 獲取幾何圖形 geometry = feature.GetGeometryRef() # 轉換為GeoJSON geojson = geometry.ExportToJson() # 添加到要素列表中 features.append({ 'type': 'Feature', 'geometry': geojson, 'properties': attributes }) # 將要素列表轉換為完整的GeoJSON對象 geojson = { 'type': 'FeatureCollection', 'features': features } # 輸出GeoJSON字符串 print(json.dumps(geojson))
以上代碼演示了如何讀取矢量數據和輸出GeoJSON格式的數據。其中,需要注意的是,GDAL為我們提供了讀取不同類型數據的函數,如GetDriverByName()和GetLayer(),方便我們通過參數傳遞進行讀取。對于輸出GeoJSON數據,我們需要對每一個要素進行轉換,并將其轉換為完整的GeoJSON對象。
上一篇python 新建空元組
下一篇mysql刪除匿名用戶