gdal连接pg(java案例)

1、下载gdal

https://www.gisinternals.com/archive.php 打开官方下载地址。

我下载的是3.8.5版本,MSVC2022,x64,release-1930-x64-gdal-3-8-5-mapserver-8-0-1,区别不大,自身系统比较低的下载低版本。

进入3.8.5的下载列表,我选择的第一个,编译后的二进制压缩包

 

解压压缩包,cmd进入命令行C:\Users\HIGHGO\Desktop\GIS\release-1930-x64-gdal-3-8-5-mapserver-8-0-1\bin\gdal\apps 

查看支持格式.
ogr2ogr --formats

1.2、配置环境变量

添加PATH,3个

G:\release-1930-x64-gdal-3-8-5-mapserver-8-0-1\bin

G:\release-1930-x64-gdal-3-8-5-mapserver-8-0-1\bin\gdal\apps

G:\release-1930-x64-gdal-3-8-5-mapserver-8-0-1\bin\gdal-data

添加GDAL_DATA

G:\release-1930-x64-gdal-3-8-5-mapserver-8-0-1\bin\gdal-data

添加PROJ_LIB

G:\release-1930-x64-gdal-3-8-5-mapserver-8-0-1\bin\proj9\share

2、导入shp

#导入shp-linux
ogr2ogr -f "PostgreSQL" PG:"host='127.0.0.1' dbname='xxxxxx' user='xxxxx' password='xxxxx@123' port=5432" /opt/110m_physical/ne_110m_ocean.shp


#导入shp-win
ogr2ogr -f "PostgreSQL" PG:"host='xxxxxx' dbname='postgres' user='postgres' password='postgres' port=5432" C:\Users\HIGHGO\Desktop\GIS\data\NewYork\110m_physical\ne_110m_ocean.shp


3、导入xlsx

#导入xls-linux
ogr2ogr -f "PostgreSQL" PG:"host='127.0.0.1' dbname='highgo' user='sysdba' password='Test@123' port=5866" /opt/dltbxz_tqmj.xlsx
#导入xls-win
ogr2ogr -f "PostgreSQL" PG:"host='192.168.110.217' dbname='postgres' user='postgres' password='postgres' port=5432" C:\Users\HIGHGO\Desktop\GIS\data\dltbxz_tqmj.xlsx

4、导入gdb

#导入gdb-win
ogr2ogr -f "PostgreSQL" PG:"host='192.168.110.217' dbname='postgres' user='postgres' password='postgres' port=5432" C:\Users\HIGHGO\Desktop\GIS\data\test_highgo.gdb -nln chinasheng -overwrite chinasheng -progress -lco GEOMETRY_NAME=geom --config PG_USE_COPY YES

5、java调用(非最优方法)

注明:本方法只是快速使用,尽量不改变jdk目录结构,如果使用框架或更深入,请采用其他方法。

把gdal.jar和gdalalljni.dll拷贝到项目的lib下,然后配置maven

       <dependency>
            <gro
### Java 连接 PostGIS 数据库教程 #### 1. 准备工作 为了成功连接到 PostGIS 数据库,需要确保 PostgreSQL 和 PostGIS 插件已安装并配置完成。此外,还需要引入必要的 JDBC 驱动程序。 JDBC 是用于访问数据库的标准 API,在此场景下需下载 `postgresql` 的 JDBC 驱动包(通常命名为 `postgresql-x.x.jar`)。可以通过 Maven 或手动方式将其添加至项目依赖中[^1]。 #### 2. 示例代码 以下是通过 Java 使用 JDBC 连接到 PostGIS 数据库的一个简单示例: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class PostGISConnectionExample { public static void main(String[] args) { String url = "jdbc:postgresql://localhost:5432/your_database_name"; String user = "your_username"; String password = "your_password"; try (Connection connection = DriverManager.getConnection(url, user, password); Statement statement = connection.createStatement(); ResultSet resultSet = statement.executeQuery("SELECT * FROM your_table")) { while (resultSet.next()) { System.out.println(resultSet.getString(1)); } } catch (Exception e) { e.printStackTrace(); } } } ``` 在此代码片段中,替换 `your_database_name`, `your_username`, `your_password`, 及查询语句中的表名以匹配实际环境设置。 #### 3. 处理地理数据 当涉及到 GIS 数据时,可能会遇到诸如 `PGobject` 类型转换问题。例如尝试将对象强制转换为 `PGgeometry` 类型失败的情况。这通常是由于未正确加载或使用 `postgis-jdbc` 库引起的。解决办法是确保项目的构建路径包含了该库,并按照其文档说明操作[^2]。 #### 4. 实战案例 - A级景区数据入库 在一个更复杂的例子中,假设目标是从 shapefile 文件导入国家级风景名胜区的数据进入 PostGIS 中,则可参照如下流程: - 利用 GDAL 工具集解析 shp 文件; - 借助 Spring Boot 架构配合 MyBatis Plus 完成 ORM 映射以及后续增删改查逻辑编写[^3]; #### 5. 动态矢量瓦片与后端聚合 针对高级需求比如支持 EPSG:4490 投影系统的动态矢量切片服务或者执行几何图形的空间分析运算等功能,PostGIS 提供了一系列强大的内置函数可供调用[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值