作为一名GIS行业从业者,会经常用到一些GIS软件,但总感觉太过于专业和复杂。
在这些GIS软件的众多功能中,可能90%以上的功能,我都没用到过。
对大多数用户来讲,常用的可能只是那10%的基础功能。
这里就来分享一下,一个GIS软件应该具备哪10%的基础功能。
个人观点,仅供参考。
地图视图
(1) 二三维视图
一个GIS系统中,二三维视图是应该同时具备的。
因为有一些基础的功能,在二维中就已经足以解决问题,且更方便,比如标注绘制地图。
而在三维场景中,则有更好的视觉呈现效果,比如地形地貌。
二维侧重于基础业务的应用,而三维则偏重于视觉效果的呈现。
但有一点很重要,那就是二三维视图应当共享图层数据,也就是在二维中绘制的数据,切换到三维视图中也同样可以显示,反之亦然。
当然,有一些数据只有在三维中才能呈现的,比如倾斜摄影数据,那在二维中则可以不显示,或显示一个数据范围以表明数据的位置。
(2) 视图基本操作
在一个GIS软件中,地图的查看显示基本操作是最基本的功能,否则其它一切功能都无从谈起。
需要查看地图,就应该具备地图放大、缩小、平移等基础功能。
02地图图层
一个基础的GIS软件,至少应该支持矢量图层和栅格图层,最好还有特殊的照片图层。
为了便于个人标注数据与照片的分享,最好还能支持云图层,所有的云图层归属为一个"共享图层"分类。
为避免一个GIS软件打开显示为空白,因此一定需要一个或多个常用的栅格图层,它们可以作为基础的"系统图层"分类。
而用户自己标注的图层则可以归属为一个本地图层,可以称之为"我的图层"分类。
(1) 矢量图层
Google Earth 简便的标注方式早已深入人心,尤其是对于各行各业的普通用户,在标注绘制地图时基本没有门槛,很容易入门上手。
但这种点、线、面混合在一起的数据,实在不利于对数据进行统计分析,因此这种点、线、面独立的图层,在一个GIS软件中也是必不可少的。
一个基础的GIS软件,最好能同时满足普通用户和专业用户,要让浅者不觉其深,让深者不觉其浅。
因此,一个GIS系统中应该同时有KML模式的复合图层,也要有SHP模式的点、线、面独立图层。
每一种图层都要有属性表,即便是KML模式的复合图层也需要有,这样才符合GIS图层的基本逻辑。
图层之间的要素,最好还要能相互复制粘贴与移动,当然这就需要考虑不同图层之间因字段不同的兼容处理。
(2) 矢量图层(含Z值)
一般情况下,要素不需要Z值,也就是点要素,或线与面要素的节点不需要有Z值。
而在有一些GIS软件中,在图层中添加的要素总是含有Z值,比如在 Google Earth 中。
但在ArcGIS的图层中,则有明确的区分,当数据量比较大但所有数据没有真实的Z值值时,如Z值都为0,这种情况下创建普通图层可以更节省存储空间。
但当图层用于记录一些有Z值的要素时,如都有不同的高程值,则需要创建坐标包含Z值的图层才更为实用,比如创建轨迹记录图层等。
因此,这种坐标包含Z值的矢量图层,在一个GIS软件中也应该是很有必要的,但也同样应该允许不含Z值的图层存在,以便灵活应用。
两种图层在没有被点用的情况应该允许互相转换,但涉及要丢失Z值的情况,则需要让用户确认是否继续操作,以避免带来损失。
( 3 ) 栅格图层
如前文所述,在系统图层中应该包括一个或几个常用的栅格图层,但同时要允许用户自主添加栅格图层。
自主添加栅格图层不是指对系统图层中栅格图层的维护,而是可以像创建矢量图层一样,叠加在系统图层之上。
( 4 ) 照片图层
为了满足普通用户对照片的管理,一个GIS系统中也应该有一个照片图层。
照片主要用于在地图上显示有坐标位置的照片。
就像点图层只存储点要素一样,照片图层也仅存储照片要素。
照片图层的本质上,其实也是一个点图层。
这里的照片,也应该同时包括视频。
( 5 ) 云图层
云图层不是一种新的图层类型,而只是因为该图层存储在云上,可以与朋友分享,甚至还可以共同编辑。
一个好用的GIS软件,一定是可以多端进行数据同步,且可以多人同时编辑。
因此,在一个GIS软件中,云图层的功能也最好是需要具备的。
( 6 ) 图层顺序
既然是图层,就应该允许调整图层顺序。
既然可以调整图层顺序,那么地图显示时,就应该根据图层先后顺序,有叠加遮挡关系。
这在ArcGIS等专业的GIS软件中是再基础不过的功能。
按理说,这个功能都不应该单独列出来讲,虽然它确实很基础,但在一些地图小工具软件,却通常没有该功能。
当然,要素排序是同样的道理,但在 Google Earth 中也没有处理该问题,它始终将按点、线、面的顺序从上至下进行叠加。
03要素绘制
(1) 图形绘制
一个GIS软件应当支持最基本的点、折线和多边形要素绘制,如 Google Earth 中就仅支持这三种。
但最好还应该当包括矩形、正矩形、圆、椭圆、扇形、曲线、曲面、自由线和自由面的的绘制。
图形绘制作为地图编辑的主要功能,能支持得越多越好,最好还支持军标态势箭头等。
(2) 多几何要素的绘制
一般来讲,普通的独立要素就够用了。
但对于一些国界或省界等,由于存在飞地的情况,他们可能会由多个要素组成。
为了能显示这样的多几何要素,因此多几何要素也是一个GIS软件一定需要支持的。
既然支持显示,就要支持创建、编辑和导入导出等。
除了飞地之外,还有面要素中存在空洞的情况,也需要支持创建、编辑和导入导出,因为这也是地图中比较常见的。
( 3 ) 文本要素绘制
文本的标注,在地图制作方面用得比较多,尤其是历史地图的制作。
文本有时需要横向的,有时又需要纵向的,甚至还需要是沿着一条弯曲路径进行分布显示的。
一个GIS软件,需要有可以灵活地绘制文本要素,才有利于高效制作地图,才可能制作出比较美观的地图。
( 4 ) 添加照片
添加照片功能,可以用于将旅游过程中或线路巡检过程中所拍摄的照片(或视频)添加系统中,便于查看拍摄位置现场情况。
照片要素在地图上始终显示照片的缩略图,但可以通过样式配置其显示的大小,以及文本标注等。
当然,这些照片也可以添加到所属点、线或面等要素的附件中,照片要素的照片文件同样也显示在附件中。
因此,可以通过对图层的配置,在气泡中显示照片要素。
照片要素可以添加在复合图层中,也可以添加在前文所述的照片图层中。
在一个人人都把手机当相机用的时代,在GIS软件中如果有了照片要素的添加功能,无论在生活中还是工作中,都是一个比较适用的功能。
04编辑功能
在一个GIS软件中,除了对点、线、面等图形要素的基本编辑之外,还应该具备常用的撤销、重做功能。
除此之外,还应当具备剪切、复制、粘贴功能。
这些功能看似很基础,且在很多软件中都有,但它所涉及的底层逻辑还是比较复杂,也有着比较大的开发工作量。
另外,还有属性字段的添加、删除、编辑等功能,也是GIS软件中所必备的。
编辑功能在任何一个GIS软件中,都是比较大的一块功能。
编辑功能是否好用,几乎决定着这款软件是否好用,因此它在用户体验方面占有比较大的权重。
05批量操作
批量操作往往可以提高工作效率。
因此,要素属性的批量修改、要素样式的批量修改,以及批量删除等功能就极为重要。
另外,在图层树中批量选择多个要素或图层,在图层属性表中批量选择多条记录等,也应该是一个GIS软件所必备的基础功能。
但当数据量比较大的情况下,批量操作如果涉及到数据库的读写等,可能会影响到程序的卡顿,因此该功能需要综合兼顾系统运行的流畅性。
****06属性查询
为了精准检索查询要素,当要素比较多时,仅通过要素查询名称是不够的,还需要支持在属性表中进行查询。
一般情况下,通过指定字段进行查询或全字段查询就可以基本满足使用了。
但是,如果属性表还支持SQL语句查询,那就更加完美了。
这样就可以通过精准查询要素,并进行编辑、删除或导出等多种灵活的操作。
07文本标注
很多GIS软件在显示文本标注时,都没有进行碰撞检测和聚合,以致于打开地图时通常显示都比较凌乱。
而一个GIS软件,我认为应该要做到地图标注自适应聚合是最好的。
当然,也应该有显示所有标注的选项设置,便于用户灵活控制。
除了点要素和面要素的标注默认横向显示外,线要素的标注还应该默认沿着线路标注显示,且在线段较长的情况下,需要循环标注。
对于点要素和面要素的文本标注比较长的情况,还应该可以自动分行显示。
文本标注是一块比较大也比较复杂的功能,但若能做到上述几点,也已经基本满足使用了。
08要素符号
要素符号是要素的呈现方式,包括图标、点大小、颜色、线宽和填充等。
要素符号的美观程度,直接决定了整幅地图的美观度。
因此,一个GIS软件中,必需要具备基本的要素符号的编辑功能。
系统中不但应该自带一些常用的图例,还应该允许用户导入自定义图例。
当导出要素再导入回系统时,要能让用户还原样式,这样才比较人性化。
为了减少复合图层中相同图例重复存储占用空间,需要在系统中对符号进行维护,让相同符号相同的要素,引用同一个符号。
点要素符号应该当支持矢量符号、图片符号和SVG符号等多种符号。
对于点、线、面的独立图层,应当允许对图层进行分组显示不同的图例,以便于用户对数据进行分类统计。
09气泡查看
我们通常需要查看要素的信息,因此当点击要素后能在气泡中显示相关文本内容,就显得非常实用了。
气泡中的内容来自于某一字段内容,字段还可以根据自己的需要进行指定。
字段中的内容可以显示为文本,如果是个网址则还可以显示为网站或视频,就非常人性化了。
要素中还应当允许保存各种附件,且这些附件也支持在气泡中查看。
一个GIS软件中,有这样一个气泡查看功能,在查看要素信息时会非常方便。
但有一点,就是当指定字段或附件中无内容时,就没有必要显示气泡了,不然就会显得多此一举。
10导入导出
GIS相关的文本格式非常多,但如果能支KML、CSV、CSV、TXT、SHP、DXF和DWG,基本上就可以解决所有问题了。
在导入KML、CSV、TXT等文件,最好还能允许选择导入只导入点、线或面要素,并且最好还应当支持导入到指定的图层。
在导出要素为文件时,除了可以默认导出图层的属性表之外,还要能让用户灵活选择是否需要导出要素的样式等其它属性,以便于快速筛选数据。
在数据的导入导出过程中,需要支持投影转换,这才算得上是GIS软件最基础的导入导出功能。
11基础工具
除了前文所述的那些比较大块的功能之外,还应该具备最基础距离测量、面积测量、截图等常用的基础工具。
另外,常用的快捷键操作也是需要具备的,以便可以提升工作效率,以及有更佳的用户体验。
12用户登录
为了可以将数据存储在云端,以及对数据进行分享,还需要有用户登录功能。
13三端支持
为了便于多端数据共享,需要有三端配套产品,即移动端、Web端和PC端。
其中移动端又应该包括安卓、IOS和小程序,且需要在不同尺寸的手机或平板上做好自适应交互。
为了让Web端也可以在不同的设备上使用,也同样需要做好操作界面上的自适应。
14跨平台支持
GIS软件在企事业单位的应用都比较广泛,而事业单位通常又需要用国产化产品,因此GIS软件的国产化以及跨平台支持也是必须要具备的。
15插件扩展
在基本功能较为完善的情况下,可以开发一些比较实用系统插件。
根据不同行业的特点,也需要支持不同行业的插件扩展。
当然,更重要是需要支持用户自己开发的插件,也可以加载到系统中。
16离线部署
鉴于一些事业单位对保密性的要素,离线部署也是需要支持的。
离线部署就涉及到产品化的服务端,否则离线部署就无从谈起,但这也是一块比较大的功能项。
17写在最后
本文罗列了一个GIS软件应当具备的一些基础功能项,如果已经有了这样一个系统,能满足你的日常使用吗?
不过,这里列出的基本功能可能还不够完整,可能还有考虑不周全的地方。
你认为还有哪些功能,是一个GIS系统应该具体的基本功能呢?
欢迎补充!