专栏首页后台全栈之路菜鸟的 GIS 基本概念学习
原创

菜鸟的 GIS 基本概念学习

因为一些缘故,工作中了解了一下 GIS。本文算是菜鸟的学习笔记吧,如有错误,衷心希望专业的 GIS 同学指正~

本文章采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。

本文地址:https://cloud.tencent.com/developer/article/1151521


Reference


什么是 GIS

GIS 就是 Geographic Information System,地理信息系统。这算是一门地理学和计算机科学的交叉学科。在大学里面这可以是一个专门的专业,一般开在地理系下面。

维基百科上的定义是:

GIS是一个设计用来捕获、存储、操作(manipulate)、分析、管理和展示空间或图像数据的系统。

GIS能够将我们日常相关的信息以空间信息的形式,在地图上展示,有了这些内容之后,我们就可以做很多事情。

概念上看起来很复杂,但是简单而言,广义上,如果一个系统包含地图、与地图相关的数据、能够展示这些数据,而且能够使用这些数据,协助我们处理某些问题,那么这就算是一个GIS系统。

日常生活中最常见的可以归结为GIS系统的如下:

  • 导航系统(纯粹的电子地图不算):导航系统包含地图、地图上面的各个定位点信息,并且我们用来完成一个目标:规划一条最优路线,从一个地方到达另一个地方
  • 类似于美团之类的消费推荐系统:系统包含了地图,地图上包含了各个商家的地理位置、评价、菜谱等信息。我们使用这个系统获得商家的信息和推荐,协助我们决定如何消费。

上面是 to C 的应用场景。To B 业务在日常生活中我们则比较少直接接触到。Esri(ArcGIS 的开发商)给的例子如下:

  • 政府部门利用在线地图对台风、洪水或传染病等灾害进行预警和应急指挥
  • 公共事业服务部门通过在线和移动地图迅速找到管道爆裂的位置,并准确的指挥现场工作人员该关闭哪个阀门和在什么位置进行挖掘维修
  • 商业公司利用在线地图和空间上的商业分析,找到最好的分店位置,分析客户的消费习惯,并能有针对性的发送促销信息

GIS 中的相关概念

GIS 应用 = 基础底图 + 操作图层 + 任务

  • 基础底图:可以简单地理解为就是地图,并且要求是一个不会频繁改变的地图。
  • 操作图层:用户使用的主要图层,承载主要的待编辑、展示和分析的信息数据。
  • 任务:如导航、地址编码等计算量比较大的分析任务。

这里以 ArcGIS 的两个入门教程为例。两个入门教程分别是 Venice Acqua Alta 和 Egmont National Park。

基础底图

比如下面的威尼斯地图里,系统设置的基础底图,是 ArcGIS 网站上的一张世界投影地图。

把界面缩到最小比例尺就可以看出来:

而另一个教程 Egmont 国家公园,使用的则是区域地图:

一个工程中可以有多个基础底图。上述两个地图中均包含 2D 和 3D 的地图和相应的图层。

操作图层

我们回到 Venice Acqua Alta 的主界面。我们看左边的 “绘制顺序” 信息,包含了以下三个可以下拉的内容,分别可以对应三个操作图层

  1. Landmarks:地标——在工程中这里包含了威尼斯几个热门旅行点的信息,可以点开看到描述信息。系统中以原点表示
  2. Canals:运河——在系统中,以红色线段表示
  3. Structures:建筑——在系统中,以青色多边形表示。

下图中,把其中的一个地标信息点开了:

任务

这里以 Venice Acqua Alta 为例,其任务就是使用其 3D 地图图层中的水位数据图层,进行威尼斯涝季城市水位分析。笔者在这里没有具体深入研究,因为不同的任务,其操作方式多种多样,这里只作为记录。


GIS 数据和协议

由于 ArcGIS 在行业内的龙头地位,其指定的一系列数据格式和交换协议,成为 GIS 业界的标准协议。目前制定 GIS 协议的标准化组织为开放地理空间协会(OGC),其制定的规范称为 OpenGIS(Open Geodata Interoperation Specification)。

相关的接口和协议非常多,以后再一一补齐。目前大部分 demo 系统,导入的数据格式为 shp 文件,往往是由甲方直接提供、或者是网上的公开 GIS 服务提供商可提供下载的,不需要我们自行转换数据格式。ArcGIS 可以直接识别并导入,入库后也使用标准接口协议开放服务,比如 WMS(网络地图服务)和 WFS(网络要素服务)。


ArcGIS 软件

ArcGIS Pro

ArcGIS Pro 是单机版的 ArcGIS 系统,这就纯粹用于需要在本地进行数据分析的应用场景。相比起 Web GIS,主要是少了 web 功能,便于建立 GIS 系统,适合企业内部进行快速的数据分析,但是不适合网络分享或者多地展示和部署。

学习 GIS 基本概念,可以从 ArcGIS Pro 开始,这个软件提供了 21 天的免费试用期。

ArcGIS for Server

ArcGIS for Server 是一个 Web GIS。

Web GIS 顾名思义,就是运行在 web 页面的 GIS。当然只是终端的数据呈现在 web 层面。对于 ArcGIS,就是 ArcGIS for Server

Server 的部署和我们普通的服务部署非常像,大块可以分为 web server、GIS server、GIS database server 三大块。


免费开源 GIS 软件

开源 GIS 软件,从大类来分,包含服务器版和桌面版(即桌面版)。显然我们最关注的是服务器版的 GIS 软件 / 组件。

服务器版的部署架构和 ArcGIS 基本类似,也是分 web、GIS Server、database 三大模块,并且可以分开部署。

开源 GIS Server

主流开源 GIS Server 可以参考 OSGeo-Live 的 “网络服务” 项:

MapServer 免费版

  • 明尼苏达大学开发
  • 纯 C,效率高
  • 跨系统支持:Windows、Linux、macOS
  • 支持绝大部分 GIS
  • 没有内置 ajax 支持

GeoServer

  • 基于 JDK,效率较低
  • 跨系统支持:Windows、Linux、macOS
  • Orracle 发布地理数据时经常使用,原因未知
  • 也有帖子提到 GeoServer 的功能最全,不过并没有专门看到相关的资料说明

开源 GIS Database Server

GIS 数据库相对而言没有 server 那样五花八门,主要是围绕着数据应用来划分成几类:

  1. PostgreSQL:读作 “post-gress-Q-L”,是一个自由的 “对象 - 关系型” DB 服务器。
  2. PostGIS:这是为 PostgreSQL 设计的扩展,用于支持存储、查询和修改空间关系的能力。为 GIS 向量和关系数据量身定做。
  3. PostGIS Raster:正在开发中,为 PostGIS 支持栅格数据——貌似已经开发完成了,但是网上资料还不多。
  4. SpatiaLite:具有空间数据功能的 SQLite 数据库系统。优势:比较接近 SQL;SpatiaLite-GUI 提供有好的 GUI;但是劣势是:资料少
  5. Rasdaman:多维栅格数据库。目前是开源项目中支持栅格数据的直接方案
  6. pgRouting:主要用于路径规划

开源 Web 组件

这里主要指的是一些开源的 Javascript API,使用这些 API 来实现地图的呈现。由于 Javascript 不是笔者擅长的内容,因此了解不多。这里只列出其中 GeoServer 自带的一个 JavaScript 库:OpenLayer,GeoServer 的管理页面中,针对每个图层,都会给出 OpenLayer 的例子,非常便于快速搭建。

桌面 GIS

桌面 GIS 从我们的应用来看并非毫无用处,主要可以用来预览、修改 GIS 数据。桌面 GIS 软件很多,这里列出几个推荐的:

QGIS

GRASS

uDig

界面友好,接近 ArcGIS

美国军方开发

基于 eclipse,慢,耗内存

对 WMS 支持好

界面差,需要很多手动命令

操作简单,支持多种数据库

无缝集成 PostGIS

分析功能弱

分析功能强,照搬 GRASS 的分析功能


开源 GIS 部署建议

国内做 toG(to 政府) 的 Web GIS 项目的时候,经常是使用 ArcGIS + Oracle + Web server 的模式来制作,成本很高(ArcGIS 需要一笔授权费)。之所以这么做,结合一些帖子的说法,整理了一些的 “中国特色” 的原因:

  1. 项目交期短,要求尽快出成果
  2. 与政府打交道的不少公司,研发能力和项目管控能力较弱(相对主流 IT 公司而言),使用 ArcGIS 不用太多研发投入,很快就可以出效果
  3. 政府网站很少被黑(违法成本高、信息价值低)、流量也低,不用花太多精力去维护和容灾,因此只需要一份 ArcGIS 授权
  4. 政府项目资金一般不会太缺,足以购买和外包 ArcGIS 解决方案

当然还有一些比较通用的原因啦:

  1. ArcGIS 是商业 GIS 的领头人,用得多很正常
  2. Esri 是业界冠楚,GIS 研发能力强,既提供 PaaS 服务也提供 SaaS 服务,售前售后团队一流
  3. 不论国内外,Esri 都早早进入大学,为大学科研提供大量免费的软件和技术服务支持。这样一来,大学生走出校园后,基本上只会用 ArcGIS,并且还用得非常熟——不得不说这是非常高明的商业做法

实际上,由于不少 GIS 项目功能是比较简单的,因此使用如上的开源 GIS 完全可以完成相应的内容。比较典型的搭配是:

  • GIS Server:GeoServer / MapServer
  • DB Server:PostgreSQL (PostGIS)
  • Web Server:Tomcat
  • 反向代理:nginx,特别是对于 GeoServer 和 Tomcat 部署在同一台机器的情况而言,使用 nginx 进行反向代理是非常舒服的

国产 GIS

最近中美贸易战风风火火,而 Esri 作为一家美国公司,个人猜测可能会受到 toB 和 toG 客户一定程度上的排斥。除了采用开源 GIS 之外,据我了解,还有不少 GIS 开发公司采用国产的 GIS 产品。这方面我还没了解,等以后有机会了再学习学习吧~


本文章采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。

本文地址:https://cloud.tencent.com/developer/article/1151521

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 《ArcGIS 地理信息系统教程》概念笔记

    之前研究了 GIS,接触到了很多 GIS 的概念。因此找了《 ArcGIS 地理信息系统教程(第 4 版)》来看。书的版本比较老了,不过一些基本概念还是想通的,...

    amc
  • 基于汇编的 C/C++ 协程 - 背景知识

    近几年来,协程在 C/C++ 服务器中的解决方案开始涌现。本文主要阐述以汇编实现上下文切换的协程方案,并且说明其在异步开发模式中的应用。

    amc
  • Unicode 颜文字(emoji)格式和 Go 代码处理

    前几天时间测试同学在我们的前端输入了颜文字,之后软件就出 bug 了。借修 bug 机会我花了点时间学习了一下 Unicode 颜文字(emoji)。本文记录我...

    amc
  • 新的一年,新的希望,新的努力

    2014年1月22日,国务院办公厅以国办发〔2014〕2号印发《关于促进地理信息产业发展的意见》,该《意见》分充分认识发展地理信息产业的重大意义、总体要求、推动...

    lzugis
  • GIS的核心价值——服务

    注:本观点仅代表个人观点,与任何人员或者组织无任何关系,如有雷同或者相似之处,只能说明我们对GIS的理解相同,无抄袭之嫌。     写这个题目,源于前两天...

    lzugis
  • R语言︱常用统计方法包+机器学习包(名称、简介)

    版权声明:博主原创文章,微信公众号:素质云笔记,转载请注明来源“素质云博客”,谢谢合作!! htt...

    素质
  • 修改博客文章链接为新窗口打开的方式

    记得,前段时间卢松松博客放出一个关于文章链接是新窗口 or 原窗口浏览方式的投票,结果大部分人都投给了新窗口,而投给原窗口的我顿时有点奥特 Man 的感觉。经过...

    张戈
  • 调用Dlib库进行人脸关键点标记

           昨天调试了人脸识别(classifier_webcam)这个程序,效果不错,响应速度也挺快。按照http://blog.csdn.net/u011...

    微风、掠过
  • 程序员进阶之算法练习(三十七)Codeforces

    题目链接 题目大意: 假设有面值为1、2、3、、、n元的硬币,每种硬币都有无限个,要凑出S元,最少需要多少个硬币?

    落影
  • Spark2.x学习笔记:1、Spark2.2快速入门(本地模式)

    1、Spark2.2快速入门(本地模式) 1.1 Spark本地模式 学习Spark,先易后难,先从最简单的本地模式学起。 本地模式(local),常用于本地开...

    程裕强

扫码关注云+社区

领取腾讯云代金券