作为一名GIS行业从业者,会经常用到一些GIS软件,但总感觉太过于专业和复杂。
在这些GIS软件的众多功能中,可能90%以上的功能,我都没用到过。
对大多数用户来讲,常用的可能只是那10%的基础功能。
这里就来分享一下,一个GIS软件应该具备哪10%的基础功能。
个人观点,仅供参考。
(1)二三维视图
一个GIS系统中,二三维视图是应该同时具备的。
因为有一些基础的功能,在二维中就已经足以解决问题,且更方便,比如标注绘制地图。
而在三维场景中,则有更好的视觉呈现效果,比如地形地貌。
二维侧重于基础业务的应用,而三维则偏重于视觉效果的呈现。
但有一点很重要,那就是二三维视图应当共享图层数据,也就是在二维中绘制的数据,切换到三维视图中也同样可以显示,反之亦然。
当然,有一些数据只有在三维中才能呈现的,比如倾斜摄影数据,那在二维中则可以不显示,或显示一个数据范围以表明数据的位置。
在一个GIS软件中,地图的查看显示基本操作是最基本的功能,否则其它一切功能都无从谈起。
需要查看地图,就应该具备地图放大、缩小、平移等基础功能。
02地图图层
一个基础的GIS软件,至少应该支持矢量图层和栅格图层,最好还有特殊的照片图层。
为了便于个人标注数据与照片的分享,最好还能支持云图层,所有的云图层归属为一个“共享图层”分类。
为避免一个GIS软件打开显示为空白,因此一定需要一个或多个常用的栅格图层,它们可以作为基础的“系统图层”分类。
而用户自己标注的图层则可以归属为一个本地图层,可以称之为“我的图层”分类。
Google Earth 简便的标注方式早已深入人心,尤其是对于各行各业的普通用户,在标注绘制地图时基本没有门槛,很容易入门上手。
但这种点、线、面混合在一起的数据,实在不利于对数据进行统计分析,因此这种点、线、面独立的图层,在一个GIS软件中也是必不可少的。
一个基础的GIS软件,最好能同时满足普通用户和专业用户,要让浅者不觉其深,让深者不觉其浅。
因此,一个GIS系统中应该同时有KML模式的复合图层,也要有SHP模式的点、线、面独立图层。
每一种图层都要有属性表,即便是KML模式的复合图层也需要有,这样才符合GIS图层的基本逻辑。
图层之间的要素,最好还要能相互复制粘贴与移动,当然这就需要考虑不同图层之间因字段不同的兼容处理。
一般情况下,要素不需要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要素绘制
一个GIS软件应当支持最基本的点、折线和多边形要素绘制,如 Google Earth 中就仅支持这三种。
但最好还应该当包括矩形、正矩形、圆、椭圆、扇形、曲线、曲面、自由线和自由面的的绘制。
图形绘制作为地图编辑的主要功能,能支持得越多越好,最好还支持军标态势箭头等。
但对于一些国界或省界等,由于存在飞地的情况,他们可能会由多个要素组成。
为了能显示这样的多几何要素,因此多几何要素也是一个GIS软件一定需要支持的。
既然支持显示,就要支持创建、编辑和导入导出等。
除了飞地之外,还有面要素中存在空洞的情况,也需要支持创建、编辑和导入导出,因为这也是地图中比较常见的。
文本的标注,在地图制作方面用得比较多,尤其是历史地图的制作。
文本有时需要横向的,有时又需要纵向的,甚至还需要是沿着一条弯曲路径进行分布显示的。
一个GIS软件,需要有可以灵活地绘制文本要素,才有利于高效制作地图,才可能制作出比较美观的地图。
添加照片功能,可以用于将旅游过程中或线路巡检过程中所拍摄的照片(或视频)添加系统中,便于查看拍摄位置现场情况。
照片要素在地图上始终显示照片的缩略图,但可以通过样式配置其显示的大小,以及文本标注等。
当然,这些照片也可以添加到所属点、线或面等要素的附件中,照片要素的照片文件同样也显示在附件中。
因此,可以通过对图层的配置,在气泡中显示照片要素。
照片要素可以添加在复合图层中,也可以添加在前文所述的照片图层中。
在一个人人都把手机当相机用的时代,在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系统应该具体的基本功能呢?
欢迎补充!