postgreSQL导入矢量栅格数据并用geoserver发布

  • Post author:
  • Post category:其他


前言


软件:

PostgreSQL 9.4 + PostGIS 2.5.1


矢量数据:

CarThefts.shp:某市汽车盗窃案发地 ( Point )

Streets.shp:某市街道分布 ( Polyline )

Tracts2000.shp:某市2000 年人口普查区数据 ( Polygon )


栅格数据:

guizhou.tif:贵州行政区划


PostgreSQL导入矢量、栅格数据

1. 打开 pgAdmin

2. 创建数据库 GeoDataDB

右键【Databases】 ,选择【Create】-【Database…】填写参数

3. 加载 postGIS 扩展

在菜单栏处点击【工具】-【查询工具】,弹出SQL窗口,输入SQL语句,并执行查询

注:创建数据库后,需要通过添加postgis插件,才可以转换为空间数据库,才可以导入空间数据

4. 菜单栏打开SQL编辑器,通过运行PostGIS函数确认是否成功创建空间数据库

PostGIS_Full_Version() —— 返回完整的PostGIS版本信息和配置信息

5. 菜单栏点击 PostGIS Shapefile and DBF Loader Exporter

注:如果之前已经创建好空间数据库,也可以在【windows开始】直接打开

6. 导入

矢量数据

注:导入成功后,可以在 GeoDataDB

>

架构 > public > 数据表 看到导入的数据

注:如果有大量数据,可以用 python 批量导入

7.  打开cmd,进入postgresql安装目录/lib,运行以下代码,导入

栅格数据

(如果要geoserver发布数据库中的栅格数据,还需要一些其他操作,所以这里建议不导入栅格数据,具体可看下面的内容)

# 【】是通常需要修改的部分,大部分都默认即可(文件位置,数据命名,数据库名)
raster2pgsql -s 4326 -I -C -M 【D:\guizhou\raster.tif】 -F -t 256x256 【guizhou】 | psql -h localhost -p 5432 -U postgres -d 【GeoDataDB】 -W

注:运行后需要填入postgres用户的密码。参数解释[

链接

]

注:

PotgreSQL 批量导入栅格数据

8. 至此成功导入矢量、栅格数据

Geoserver发布矢量数据

之前做过类似的,只不过是把数据源从本地shp改成postgreSQL数据库,这里不再赘述了。 [

点击此处跳转

]

注:这里把数据库数据全部加载了,矢量数据只需要再填写边界盒就可发布了,但栅格数据还不行,具体看下部分内容

Geoserver发布栅格数据

Geoserver发布本地的栅格数据(如:tif) 很简单 [

链接

] [

Bug

],但利用GeoServer发布postgreSQL中的栅格数据比较麻烦,需要用到


Image Mosaic JDBC


插件。因为看到一篇不错的文章,所以就不重复写了 [

链接

] (文中构建金字塔和切割瓦片不是必需的,但对于高分辨率影像数据量到一定程度还是必需的)。

版本要匹配。 这里给个 2.15.1 版本,其他版本修改网址即可。[

下载链接

]

其他:

Geoserver的ImageMosaic数据源

(实现将一个文件夹下面的所有影像文件发布成一个服务的需求

其他:

GeoServer 数据类型



版权声明:本文为sinat_36226553原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。