資源描述:
《OGR數(shù)據(jù)模型ppt課件.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、OGR12OGR數(shù)據(jù)模型核心對象驅(qū)動(Driver)數(shù)據(jù)源(DataSource)圖層(Layer)要素(Feature)幾何圖形(Geometry)其他相關(guān)對象要素定義(FeatureDefn)字段定義(FieldDefn)空間參照系統(tǒng)定義(SpatialReference)…3函數(shù)命名規(guī)律OGR_DS_xxx:數(shù)據(jù)源操作OGR_L_xxx:圖層操作OGR_FD_xxx:要素定義操作OGR_F_xxx:要素操作OGR_G_xxx:幾何圖形操作OGR_Fld_xxx:字段定義操作4注冊所有格式注冊所有格式OGRRegisterAll(
2、);注意:必須在編譯時打開格式開關(guān)。通常在程序中調(diào)用其他OGR函數(shù)之前,必須首先調(diào)用此函數(shù)5數(shù)據(jù)集打開OGROpen釋放OGR_DS_Destroy6OGRDataSourceHOGROpen(constchar*pszName,intbUpdate,OGRSFDriverH*pahDriverList)遍歷所有支持的格式,直到成功打開,或者沒有合適的驅(qū)動則返回NULL。成功返回數(shù)據(jù)源句柄。bUpdate:FALSE:只讀方式打開,TRUE:讀寫方式打開。pahDriverList:是輸出參數(shù),如果成功打開,可返回打開的驅(qū)動。void
3、OGR_DS_Destroy(OGRDataSourceHhDataSource)釋放打開的數(shù)據(jù)源打開和釋放數(shù)據(jù)集7數(shù)據(jù)集常用操作OGR_DS_GetName獲取數(shù)據(jù)源名稱OGR_DS_GetLayerCount獲取圖層數(shù)OGR_DS_GetLayer根據(jù)索引號打開圖層,返回圖層句柄OGR_DS_GetLayerByName根據(jù)圖層名打開圖層,返回圖層句柄OGR_DS_DeleteLayer根據(jù)索引號刪除圖層OGR_DS_CreateLayer創(chuàng)建新圖層8圖層一個數(shù)據(jù)集中可以包含多個圖層圖層由多個要素構(gòu)成可以基于給定條件搜索要素9圖層
4、基本信息操作OGR_L_GetLayerDefn獲取圖層定義信息OGR_L_GetSpatialRef獲取圖層空間參照系統(tǒng)信息(投影信息)OGR_L_GetFeatureCount獲取要素數(shù)目OGR_L_GetExtent獲取外接矩形范圍OGR_L_GetFIDColumn獲取FID所在字段的字段名OGR_L_GetGeometryColumn獲取geometry所在字段的字段名10圖層要素操作OGR_L_GetFeature根據(jù)FID獲取要素OGR_L_SetFeature根據(jù)FID修改要素OGR_L_CreateFeature創(chuàng)建
5、新的要素OGR_L_DeleteFeature刪除要素11圖層要素查找OGR_L_ResetReading重置以開始讀取下一個要素,調(diào)用OGR_L_GetNextFeature之前必須先調(diào)用本函數(shù)OGR_L_GetNextFeature獲取下一個滿足SpatialFilter條件的要素OGR_L_SetSpatialFilter設(shè)置空間搜索geometry(目前只支持Intersect),且可能不準(zhǔn)確OGR_L_SetSpatialFilterRect設(shè)置矩形搜索范圍(目前只支持Intersect),且可能不準(zhǔn)確OGR_L_GetSp
6、atialFilter獲取空間搜索的geometry12要素要素代表空間對象,包括空間信息和屬性信息要素用FID標(biāo)識空間信息用幾何圖形(geometry)標(biāo)識屬性信息用關(guān)系模型的字段標(biāo)識要素還與空間參照系統(tǒng)相關(guān)聯(lián)13要素基本信息操作OGR_F_CreateOGR_F_Destroy所有的Feature在使用完后,一定要使用本函數(shù)來釋放內(nèi)存。OGR_F_GetDefnRefOGR_F_GetFieldCountOGR_F_GetFieldDefnRefOGR_F_GetFieldIndex14獲取要素字段值FID:OGR_F_GetFI
7、D空間信息:OGR_F_GetGeometryRef屬性信息:OGR_F_GetFieldAsIntegerOGR_F_GetFieldAsDoubleOGR_F_GetFieldAsStringOGR_F_GetFieldAsIntegerListOGR_F_GetFieldAsDoubleListOGR_F_GetFieldAsStringListOGR_F_GetFieldAsBinaryOGR_F_GetFieldAsDateTime15設(shè)置要素字段值FID:OGR_F_SetFID空間信息:OGR_F_SetGeometry
8、OGR_F_SetGeometryDirectly屬性信息OGR_F_SetFieldIntegerOGR_F_SetFieldDoubleOGR_F_SetFieldStringOGR_F_SetFieldIntege