def getAvgAreaByAttribute(ds, clause):
lyr_name = ds.GetLayer(0).GetName()
sql_query = f'''SELECT AVG(OGR_GEOM_AREA) as avg_area
FROM {lyr_name}
WHERE {clause}'''
res_lyr = ds.ExecuteSQL(sql_query)
avg_area = res_lyr[0].GetField('avg_area')
ds.ReleaseResultSet(res_lyr) # 清除查詢結果
return avg_area
關于SetSpatialAttribute()這個函數:隻要與filter geometry相交的geometries都會被傳回。(This function set the geometry to be used as a spatial filter when fetching features via the OGR_L_GetNextFeature() function. Only features that geometrically intersect the filter geometry will be returned.)