OGR连接数据源读取矢量数据图层(C#)
1.OGR简介
GDAL/OGR是一个开源的空间数据转换库,其中GDAL提供对栅格数据的读写支持,OGR提供对矢量数据的读写支持。
OGR支持的数据格式:ESRI Shapefiles、S-57、SDTS、PostGIS、Oracle Spatial、Mapinfo mid/mif、Mapinfo TAB。
使用了GDAL/OGR库的GIS产品:ESRI的ArgGIS 9.2、Google Earth、GRASS GIS等。
2.通过OGR获取矢量图层
/// <summary> /// 根据指定的数据源字符串和图层名获取Layer /// </summary> /// <param name="pStrOgrDataSource">数据源字符串</param> /// <param name="pStrLayerName">图层名</param> /// <returns>OGR的Layer对象</returns> private Layer GetOgrLayer(string pStrOgrDataSource, string pStrLayerName) { try { Ogr.RegisterAll(); DataSource ds = Ogr.Open(pStrOgrDataSource, 0); Layer layer = ds.GetLayerByName(pStrLayerName); return layer; } catch { throw new Exception("打开空间数据出错"); } }
3.关于数据源字符串
不同数据源的OGR连接字符串有所不同,下面列举几种常用的OGR连接字符串:
Shapefile:图层所在文件夹的路径,如:D:\Data
ArcSDE for Oracle:SDE:ServerName,InstanceName,DatabaseName,UserName,PassWord
如 SDE:MyServer,5151,db1,sde,pwd
Oracle Spatial:OCI:UserName/PassWord@NetServiceName
如 OCI:mdsys/pwd@orcl