geoserver的多源数据发布

12/24/2022

GeoServer可以通过发布shapefile文件、发布GeoTIFF文件、发布PostGIS表、发布瓦片数据的方式发布一个地图服务。

# shapefile文件

Shapefile文件指的是一种文件存储的方法,实际上该种文件格式是由多个文件组成:

  1. .shp文件:主文件,用于保存几何实体
  2. .shx文件:索引文件,保存每个记录包含对应主文件记录离主文件头开始的偏移
  3. .dbf文件(dBASE表):保存实体的属性信息
  4. .prj文件:用于保存地理坐标系统与投影信息,是一个存储well-known text投影描述符的文本文件。
  5. .shp.xml文件:以XML格式保存元数据。
  6. .cpg文件:用于描述.dbf文件的代码页,指明其使用的字符编码

一个Shapefile,".shp", ".shx"与 ".dbf"三个文件是必不可少的。

通过shp文件发布的流程如下:

  1. 数据准备

    将要发布服务的数据拷贝到<<GEOSERVER_DATA_DIR>/data下面,即数据目录中的data文件夹下。

  2. 创建新的工作区 | 也可以选择已存在的工作区

    image-20201123113657417

    • Name:工作空间名称,不得超过十个字符

    • Namespace URI:命名空间URI通常可以是与项目关联的URL,并添加了指示空间的尾随标识符, 不需要解析实际有效的Web地址

  3. 创建数据源

    数据存储/添加新的数据存储/Shapefile;

    image-20201123114134883

    需要根据shapefile文件的cpg文件中指明的字符编码,设置字符集。

  4. 发布图层

    在创建完数据存储后,会有一个创建图层界面,点击后出现编辑图层

    image-20201123114449423

    • 编辑图层:“数据”tabs,填写基本信息、边框选择‘从数据中计算’

      image-20201123115033092

    • "发布" 的tab页中设置WMS的Default Style为line,和显示样式,保存即发布成功

    image-20201123115316340

    保存后就发布成功了,可以在图层预览中查看图层:

    image-20201123115628373

    image-20201123115712859

# GeoTIFF文件

TIFF格式是当今世界上广泛接受的通用栅格数据格式。 TIFF是用于存储,传输,显示和打印光栅图像(如剪贴画,徽标,扫描的文档等)的合适格式。TIFF图像文件格式可用于存储和传输数字卫星图像,扫描的航拍照片,高程模型以及扫描的地图。

考虑到TIFF的流行和TIFF格式是无损可扩展的,许多使用TIFF格式存储数字卫星图像的TIFF用户感到需要以某种方式将地理信息(纬度,经度,地图投影等)嵌入TIFF文件,以便可以被各种 GIS 使用包轻松。这一要求促使了GeoTIFF的发展,GeoTIFF是TIFF文件,其地理(或制图)数据已作为标签嵌入TIFF文件中。

GeoTIFF 格式卫星影像是带有坐标信息的图像文件,谷歌卫星影像或是天地图都是 Web Mercator(EPSG:3857)坐标系。

GeoTIFF 已成为 GIS 和卫星遥感应用的行业图像标准文件。GeoTIFF可能随附其他文件:

  • TFW 是提供栅格地理位置所需的文件。
  • XML(可选)随 GeoTIFF 一起出现,并且存储元数据。
  • AUX 辅助文件存储投影和其他信息。
  • OVR 金字塔文件提高了栅格显示的性能。

通过GeoTIFF文件发布的流程如下:

  1. 下载获得或者处理得到GeoTIFF数据,将数据拷贝到GeoServer的数据目录的data目录下。

    在选择数据源的时候使用相对路径(方便数据和服务的转移及部署)

  2. 创建数据存储

    1615173548018

    1615173672667

  3. 新建图层

    1615173726893

    点击发布,进入发布页面,因为GeoTIFF文件中存储有坐标信息,所以在【数据】tab页中的坐标参考系统会识别GeoTIFF文件坐标信息和边界。

    1615173829713

    点击"保存"即发布完成。

  4. 图层预览

    返回主页的"Layer Preview",点击刚刚发布图层的"Openlayers"可以查看发布好的服务。

    1615174215822

    1615174252255

# PostGIS表

  1. 安装PostgreSQL和PostGIS

  2. 将空间数据导入PostGIS

  3. 新建workspace

    1614654613622

  4. 新增数据存储

    1614654863978

    选择PostGIS-PostGIS Database 数据源。

    1614654957830

    1614655151107

    选择新建的工作区,配置数据源名称,填写刚导入数据的数据库的连接信息。

    其中的Expose primary keys 是暴露主键,每张导入postgis的矢量数据表都会生成一个gid属性,作为矢量数据记录的标识。对于事务WFS,该表必须具有主键。没有主键的表被视为对 GeoServer 只读。

  5. 创建图层

    1614655648265

    在保存数据源后,系统会检测该数据源中存在的矢量数据。这里我点击“发布”就可以进入图层的配置界面。

    主要的配置是【数据】tab页的 坐标参考系统边框 ,这里已经识别了数据的坐标参考系,点击"从数据中计算"和"Compute from native bounds"就会填充数据边框。

    1614655982617

    关于图层的样式,在【发布】tab页的WMS settings 中的Default Style 进行配置,这里我们选择了GeoServer自带的默认的面样式。选择完后点击“保存”,图层就发布完毕了。

  6. 图层预览

    返回主页,点击layer Preview,选择需要预览的图层的预览格式。也可以直接点击"Common Formats"中的Openlayers进行预览。

    1614656685144

# 瓦片数据

  1. 新建切片策略

    1615181978106

    创建时,选择数据的空间参考、切图范围、瓦片大小以及各个级别的比例尺和分辨率 。

    注意:切图范围需要填写图层服务上的 Bounding Box

    1615182224816

    1615173829712

  2. 添加到缓存配置

    返回主页,点击【图层】,选择需要进行缓存的图层服务;

    在"Tile Caching"tab页中增加刚刚新增切图策略。

    1615182749787

    1615182975014

    这里可以选择Tile Image Formats,jpeg只有(R,G,B)三个通道,但png有四个通道(R,G,B,A)可以将切图空白部分渲染呈透明,而jpeg不行。

  3. 创建缓存

    GeoServer 创建缓存的方式有两种:

    • 一种是当用户查看地图时创建浏览的地图范围及相应等级下的部分缓存,主要优点是,它不需要预处理,并且仅缓存已请求的数据,因此也可节省磁盘空间。该方法的缺点是地图查看只会间歇性地加速,从而降低了用户体验的质量。
    • 另一种方式是通过 Seed/Truncate创建,缺点是Seed可能是非常耗时和磁盘消耗的过程。

    1615183529095

    点击 Seed/Truncate进入GeoWebCache页面:

    1615183909611

    点击"Submit"提交切片任务:

    1615184398829

    当任务执行完后,可以在数据目录的gwc目录下查看到已经切好的图。

    1615184495244

    tilesetss

  4. 图层预览

    返回主页,进入Tile Layers 页面,选择Preview中的beijing18/png,进行预览。

    1615184939415

Last Updated: 9/13/2023, 9:34:21 PM