GISBox

如何导入编辑PostGIS矢量数据并发布为服务?

GISBox(GIS 工具箱)在“场景编辑”模块提供多种格式矢量数据的编辑功能,包括SHPGEOJSONPostGISDWGDXF格式,还支持“在线下载矢量”“插入空矢量”,同时支持将导入的矢量数据发布为服务


该模块分为多篇教程展开介绍,本文详细介绍如何“导入”通过数据建库获取的PostGIS矢量数据,并对其“编辑”以及“发布为服务”

1. 新建场景

首先,在GISBox首页进入“场景编辑”模块,点击右上角“新建场景”,对该场景命名,点击“确定”,自动进入该新建场景。

2. 导入PostGIS矢量数据

顶部工具栏“常用”Tab标签下,“矢量”功能区,有七种矢量数据导入方式,本文只介绍“PostGIS”矢量数据。


点击“PostGIS”选项,在“接入PostGIS数据源”弹窗中填写各设置项。如果“数据库类型”“主机地址”“端口”这三个设置项没有变动的话,保持默认即可,不要随意修改,以免数据读取不成功;“用户名”“密码”是安装数据库时自行设置的。


"数据库"设置项点击"查询",提示"查询成功",即可在"选择"下拉框选择目标数据库


【温馨提示】“数据库”选项只能在下拉框选择导入手动输入数据库名无效的。


“模式”设置项默认为“public”,如有需要可以手动修改。


“表”设置项与“数据库”设置项同样操作。


设置完成后,点击"确定"导入。


导入成功后,左侧图层面板会出现一个以“表”文件名命名的矢量图层

3. 编辑矢量

导入成功后,在画面右上角切换至“2D”视图。

3.1 定位&调整矢量

鼠标左键双击矢量合集图层,可以快速定位概览该矢量合集。


合集图层展开,此时整个矢量合集是完全展示在画面中的,左侧图层面板中也对应显示全部的矢量图层


而如果我们调整缩放级别使画面中仅展示部分矢量,此时左侧图层面板,就会对应显示展示在画面中的部分矢量图层。随着对画面进行缩放操作,图层面板中显示的矢量图层也会跟随变化。因此接入的PostGIS矢量数据的图层树是动态变化的


鼠标左键单击单个矢量图层可以将该矢量选中。


鼠标左键双击则可以快速定位至该矢量使其显示在画面中央。


选中某个矢量图层后会看到相应由蓝色顶点、红色边线的构成区域,光标放置顶点处可以拖动顶点调整形状,将光标放置边线上左键单击可以添加新的顶点,或者在光标下出现蓝色圆点时直接拖动至目标位置,形成新的顶点。"Alt"加鼠标左键可以删除顶点


只要对矢量数据有编辑操作,左侧图层面板中的图层文本和图标就会改变颜色,以示该图层已被改动。


调整完成后,点击顶部工具栏中的"提交修改",将编辑操作保存


【温馨提示】提交后编辑操作会直接修改数据库,所以要谨慎操作提前备份源数据


提交后,提示“保存成功”,左侧面板中的图层就会恢复原色


选中单个矢量图层时,在右侧“属性”面板中可以查看和修改该矢量的属性


鼠标右键点击矢量合集图层可以打开“属性表”,批量修改矢量数据的属性“添加字段”


点击“添加字段”,在弹窗中设置字段属性,完成后点击“确定”


属性表中出现添加的字段以及默认值数据,点击“保存”


单个矢量“属性”面板中也会对应更新。


鼠标左键单击字段名,选中该列,右键单击,可以“删除该列”“添加字段”“保存”。若当前没有编辑操作,则“保存”选项是置灰状态。

3.2 添加矢量

选中矢量合集图层,在“矢量合集”Tab标签下“添加”功能区,这里仅支持“多面”编辑方式,这是因为当前导入的PostGIS矢量数据,本身就是一个多面的矢量集合,所以只能在这个集合中,加入同一种类型的矢量。


点击"多面"选项后,我们在“插入矢量”弹窗内,对该矢量命名


完成后,光标下就会产生一个蓝色圆点。根据画面右下角的操作提示确定矢量区域,区域勾勒完成后,按“Esc"键退出编辑,然后可以可以通过不断删除其中某个面的各个顶点将这个面删除


【温馨提示】注意如果我们希望手动将区域闭合,可以使最后一个顶点与第一个顶点重合,左键或右键单击即可完成;如果最后一个顶点不与第一个顶点重合,鼠标左键或右键双击,区域会自动闭合,将首尾两个顶点之间自动连接成为区域边线。


全部编辑完成后,点击“提交修改”,将操作保存


【温馨提示】提交后编辑操作会直接修改数据库,所以要谨慎操作或提前备份源数据。


提交后提示“保存成功”。如果需要继续添加,点击顶部工具栏中的“面”即可继续编辑。

3.3 调整矢量样式

选中左侧图层面板中的矢量合集图层,在右侧“样式”面板中有“基础设置”“样式”两类设置项。


“基础设置”设置项,可以调整“最小渲染级别”以及设置“SRS”


调整“最小渲染级别”。例如在当前缩放级别下,将其数值提高到一定程度,就不再渲染该矢量;或者在当前的最小渲染级别下,将缩放级别提高到一定程度时才会渲染。


设置“SRS”,即矢量模型的绝对坐标,保证无论在哪个平台中浏览该模型都能够定位到准确位置。点击“选择/录入”,可以通过三种方式录入坐标。


“样式”设置项,可以调整矢量模型的样式,有两种调整方式:可视化编辑直接编辑


“可视化编辑”方式可以自定义地添加设置“样式规则”,调整时可以即时地看到效果。点击“+”符号,即可添加“规则”,支持添加多个。


鼠标右键点击矢量合集图层打开“属性表”


设置各个设置项,“条件字段”对应属性表中的“字段”“条件”可选择“等于”“包含”“小于”等;“字段值”即为属性表中相应字段的值,为非必填项,若不填写,则对所有包含该字段的矢量生效;“几何类型”为添加该矢量时的矢量类型“点”、“线”、“多面”等,此处支持多选。


接下来设置样式。点击“+”符号添加样式,可添加多个,作用于不同类型的矢量。其中“轮廓虚线样式”输入格式为“数值1,数值2”,例如输入4,8表示绘制4px间隔8px。


还可以点击“复制”图标,一键复制生成一个相同配置的规则或样式,在此基础上进行微调等操作,实现快速添加相似规则和样式。


点击“删除”图标可以将当前规则或样式删除。若当前只存在一个规则或样式时则不可删除,可尝试添加新规则或样式后再将想要删除的规则或样式删除。


“直接编辑”方式可以在输入框输入代码直接调整成目标样式。

4. 发布为服务

选中左侧图层面板矢量合集图层,点击“矢量合集”Tab标签下的“发布为服务”


【温馨提示】发布服务之前要确认已经“提交全部”


在弹窗中设置服务名称,点击“确定”


切换至“服务分发”列表,可以使用WFSWMSWMTSMVT四种服务协议,分别以cesiummapboxleafletopenlayers四种形式进行预览。


如果使用WFS协议,因为是前端渲染,因此是不带样式的。


如果使用WMSWMTSMVT协议,就会带有样式


生成的服务地址可以被应用到cesiumGIS平台中,也可以应用于山海鲸可视化等包含GIS数字孪生平台中。

5. 视频教程