from osgeo import ogr import sys databaseServer = "<IP of database server OR Name of database server" databaseName = "<Name of database>" databaseUser = "<User name>" databasePW = "<User password>" connString = "PG: host=%s dbname=%s user=%s password=%s" % (databaseServer,databaseName,databaseUser,databasePW) def GetPGLayer( lyr_name ): conn = ogr.Open(connString) lyr = conn.GetLayer( lyr_name ) if lyr is None: print >> sys.stderr, '[ ERROR ]: layer name = "%s" could not be found in database "%s"' % ( lyr_name, databaseName ) sys.exit( 1 ) featureCount = lyr.GetFeatureCount() print "Number of features in %s: %d" % ( lyr_name , featureCount ) conn.Destroy() if __name__ == '__main__': if len( sys.argv ) < 2: print >> sys.stderr, '[ ERROR ]: you must pass at least one argument -- the layer name argument' sys.exit( 1 ) lyr_name = sys.argv[1] GetPGLayer( lyr_name )
此代码示例打开一个PostGIS连接和获取指定的图层名称是否存在于数据库中。否则会抛出一个很好的错误信息
关注公众号
获取免费资源