色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

gdal輸出json

劉柏宏1年前10瀏覽0評論

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對象。