java:使用gdal连接postgresql数据库,读取矢量、栅格表

概要

java/c#: gdal连接postgresql读取栅格表

技术细节

GDAL的数据源可以在连接字符串中指定,而不仅仅是文件路径,在查询和索引中可以获取给定位置的海拔。基本的 PostGIS 栅格连接字符串位于GDAL官网

PG:“[host=‘’] [port:‘’] dbname=‘’ [user=‘’] [password=‘’] [schema=‘’] [table=‘’] [column=‘’] [where=‘’] [mode=‘’] [outdb_resolution=‘’]”

矢量连接

// 先对gdal进行注册
org.gdal.gdal.gdal.AllRegister();
org.gdal.ogr.ogr.RegisterAll();
// 连接地址,所需参数见名知意;
// SchamaName是postgresql的架构
// postgresql的库表结构是: 库-架构-表
String url = "PG:dbname=" + databaseName
                + " host=" + host
                + " port=" + port
                + " user=" + user
                + " password=" + pwd
                + " active_schema=" + schemaName
                + " tables=" + tableName;
Driver driver = ogr.GetDriverByName("PostgreSQL");
// 0:只读;1:读写
DataSource dataSource = driver.Open(filePath,1);
Layer layer = ds.GetLayerByIndex(0);
// 下面写你的代码逻辑
......
// 释放资源
ds.delete();

栅格连接

// mode=1/2:
// 1:适用于单表:单栅格
// 	1.1 一张表中每条数据都是一个独立的栅格文件,未进行切块的栅格,如果需要读取指定的栅格文件,需要添加where参数,例如:where='rid=1',拼接在mode后面或任意位置
// 2: 适用于单表,对栅格文件进行分割了的表
// 	2.1:一张表中所有的栅格属于一个栅格文件,对栅格进行切块后进行存储的
String url = "PG:dbname=" + databaseName
                + " host=" + host
                + " port=" + port
                + " user=" + user
                + " password=" + pwd
                + " schema=" + schemaName
                + " table=" + tableName
                + " mode=" + mode;
// 0:只读;1:读写
Dataset dataset = gdal.Open(fileName, 0);
// 获取波段,进行代码逻辑编写

// 释放资源
dataset.delete();
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值