GIS开发基础知识
GIS概念
地理信息系统(Geographic Information System,GIS),是在计算机硬、软件系统支持下,对整个或部分地球表层(包括大气层)空间中的有关地理分布数据进行采集、储存、管理、运算、分析、显示和描述的技术系统
对于专业GIS人员,多学科
WebGIS 应用开发人员来说 就是 与地理空间相关的 数据 服务接口 开发库 GIS平台
WebGIS相关规范
OGC
OGC是什么
OGC 全称 Open Geospatial Consortium,是一个非盈利的、国际化的、自愿协商的标准化组织,它的主要目的就是制定与空间信息、基于位置服务相关的标准。这些标准就是 OGC 的“产品”,而这些标准的用处就在于使不同厂商、不同产品之间可以通过统一的接口进行互操作。
在 GIS 领域,OGC 已经是一个比较“官方”的标准化机构了,它不但包括了 ESRI、Google、Oracle 等业界强势企业作为其成员,同时还和 W3C、ISO、IEEE 等协会或组织结成合作伙伴关系。因此,OGC 的标准虽然并不带有强制性,但是因为其背景和历史的原因,它所制定的标准天然地具有一定的权威性。
所以,我们也可以看到,很多国内的部门或行业要进行地理空间信息的共享 或发布时,言必称 OGC 标准,就和这个原因有关。 但是,事实上我们对 OGC 和 OGC 标准并不需要盲目崇拜和迷信,从 RESTful 服务规范的长期缺失1 、KML 的空降等可以看出来,OGC 还是有一些缺失和不足的地方。
OGC 标准
OGC 的标准基本上就是 OGC 所有的成果,而所谓的标准就是一些接口或编码的技术文档。不同的厂商、各种 GIS 产品都可以对照这些文档来定义开放服务的接口、空间数据存储的编码、空间操作的方法等。
参考地址:
https://www.ogc.org/docs/is
https://www.osgeo.cn/doc_ogcstd/ogc_standard/index.html
I3S规范
I3S规范,全称为OGC Indexed 3D Scene Layer,是由esri发起作为OGC新的国际三维标准,基于该规范的的数据格式为 SceneLayer Package(SLPK),专注于在互联网或离线环境中提供高性能三维可视化和空间分析。
i3s对三维地理数据的分类
i3s标准的数据组织和结构
i3s使用的是树结构组织数据,同时支持规则四叉树或者R树组织。每个树节点代表的地理数据的范围,由外包围球(mbs)或外包围(obb)盒表示。
官方推荐使用外包围盒表示范围(和二维的外包矩形,类似),点云数据仅支持外包围盒。
3dTiles
3D Tiles是在glTF的基础上,加入了分层LOD的结构后得到的产品,专门为大量地理3D数据流式传输和海量渲染而设计的一种格式,是目前开源WebGL框架Cesium的御用格式。
3D Tiles中,一个tileset是由一系列tile组成的树状结构。每个tile可以引用下面的其中一种格式
https://github.com/CesiumGS/3d-tiles
https://github.com/CesiumGS/3d-tiles/tree/master/specification
地理空间数据
基本特征
1. 属性特征
表示实际现象或特征,例如变量、级别、数量特征和名称等等
2. 空间特征
表示现象的空间位置或现在所处的地理位置。 空间特征又称为几何特征或定位特征, 一般以坐标数据表示, 例如笛卡尔坐标等。
3. 时间特征
指现象或物体随时间的变化,其变化的周期有超短期的、短期的、中期的、长期的等等。
数据质量
准确性(Accuracy)
精度(Precision)
空间分辨率(Spatial Resolution)
比例尺(Scale)
误差(Error)
不确定性(Uncertainty)
空间数据的获取
1.地图数字化
数据类型
矢量要素
矢量要素(带有矢量几何的地理对象)是一种常用的地理数据类型,其用途广泛,非常适合表示带有离散边界的要素(例如街道、州和宗地)。要素是一个对象,可将其地理制图表达(通常为点、线或面)存储为行中的一个属性(或字段)
参考:https://desktop.arcgis.com/zh-cn/arcmap/10.3/manage-data/geodatabases/feature-class-basics.htm
要素类型
数据格式
矢量数据文件主要有shp、GeoJSON、KML、File GDB、CAD、XML等.
SHP矢量数据
ESRI Shapefile(shp),或简称shapefile,是美国环境系统研究所公司(ESRI)开发的一种空间数据开放格式,用于存储地理要素的几何位置和属性信息的非拓扑简单格式。
SHP文件格式的最显著特点是他由多个文件组成,有点类似CAD文件。至少3种文件,至多可达15种不同的文件,其中.shp、.shx和.dbf是每个有效SHP文件所必须的。
如下井图层,包含以下8个文件。
GeoJson
GeoJSON是一种对各种地理数据结构进行编码的格式。GeoJSON对象可以表示几何、特征或者特征集合。GeoJSON支持下面几何类型:点、线、面、多点、多线、多面和几何集合。GeoJSON里的特征包含一个几何对象和其他属性,特征集合表示一系列特征。
GeoJSON特征集合:
JSON { "type": "Feature", "geometry": { "type": "Point", "coordinates": [125.6, 10.1] }, "properties": { "name": "Dinagat Islands" } } |
https://www.oschina.net/translate/geojson-spec
https://doc.arcgis.com/zh-cn/arcgis-online/reference/geojson.htm
栅格数据
介绍
最简形式的栅格由按行和列(或格网)组织的像元(或像素)矩阵组成,其中的每个像元都包含一个信息值(例如温度)。栅格可以是数字航空像片、卫星影像、数字图片或甚至扫描的地图。
以栅格格式存储的数据可以表示各种实际现象:
栅格数据类型
1.卫星影像:遥感卫星影像是用栅格格式记录的。卫星影像像元值代表从地球表面反射或
发射的光能。通过分析像元值,影像处理系统可从卫星影像中提取各种专题,如土地利用、水文、水质、侵蚀土壤面积等。
2.数字高程模型:数字高程模型(DEM)由等间隔海拔数据的排列组成。DEM以点为基础,但也容易通过将海拔高度点置于格网单元中心的方法转换成栅格数据。
3.数字正射影像图(DOM):是一种由航片或其他遥感数据制备而得到的数字化影像,其中由照相机镜头倾斜和地形起伏引起的位移已被消除。数字正射影像是地理坐标参考的,并可与地形图和其他地图配准。
DLG 数字线划图
DRG
4.二进制扫描文件:是含数值1或数值0的扫描图像。
5.数字栅格图形:是USGS(美国地质调查局)地形图的扫描图像。
6.图形文件:如Jpg、TIFF、GIF等;
参考:
https://desktop.arcgis.com/zh-cn/arcmap/10.3/manage-data/geodatabases/raster-basics.htm
https://desktop.arcgis.com/zh-cn/arcmap/10.3/manage-data/raster-and-images/what-is-raster-data.htm
https://desktop.arcgis.com/zh-cn/arcmap/10.3/manage-data/raster-and-images/supported-raster-dataset-file-formats.htm
栅格数据结构及压缩
栅格数据结构是指栅格数据的存储,便得它们能被计算机使用与处理。常用结构有:单元依次编码、链代码法、块码、区域四叉树(主要内容可参考《地理信息原理》、《地理信息导论》)。
栅格图像压缩通常分为有损压缩与无损压缩。
无损压缩
是指利用数据的统计冗余进行压缩。保证数据压缩与还原过程中,图像信息没有损耗与失真。常见有:行程长度编码(RLE)即游程编码、增量调制编码(DM)、霍夫曼编码(LZW);
有损压缩
利用人的视觉误差,采用高效有限失真数据压缩算法,允许压缩过程损失一定的信息。常见有JPEG压缩标准,其最高压缩比可达50:1;
JPEG压缩标准是由ISO与IEC制定的静态图像数据压缩标准。它有两种基本算法:一种是以离散余弦变换为基础的有损压缩算法。一种是以预测技术为基础的无损压缩算法。
栅格数据的投影与几何变换
卫星影像的几何变换在图像处理中常称作地理坐标参照。地理坐标参照常用的两种方法有:
1、仿射变换(affine transformation)
其通过旋转、移动和比例变换对图像作地理坐标参照。其变换方程如下:
x'=Ax+By+C
y'=Dx+Ey+F
其中x,y代表列数与行数,系数E是负的,因为影像与坐标系统的原点不同.影像的坐标原点为右上角,而坐标系统的原点为左下角。
2、多项式方程
多项式方程为差异比例变换和图像旋转提供了数学模型。模型的复杂程度由多项式的阶来表达,其范围从2到5。比如,二阶多项式用下列方程来转换:
重采样
用原格网中的单元值填充新格网中的单元值。
三种常见重采样方法:
地图符号
地图符号是地图上各种形状、大小和颜色的图形和文字的总称。它是地图内容体现的一种主要手段。是地图的基本特征之一。
地图符号分类
1.按制图对象的几何特征
点状符号
线状符号
面状符号
2.按比例关系
依比例尺符号
符号与实地物体的关系是依比例表示。
半依比例尺符号
其长度依比例尺,而宽度不依比例尺。
不依比例尺符号
符号与物体之间是不依比例的。
3. 从视觉上
形象符号
指对应于空间事物形态特征的符号,如森林、房屋、 岸线等地物。
抽象符号
指用几何形状和色彩表示的符号系列。
构成符号的视觉变量
包括基本的视觉变量和视觉变量的扩展
基本的视觉变量
1.形状变量
是视觉上能区别开的几何图形的单体。
对于点状符号来讲,符号本身就体现了形状的变量。如圆形、方形、三角形等。
线状或面状符号,是由连续的点或点的排列组成。形状变量在线状符号中是一个个形状变量的连续,在面状符号中是一排排形状变量的连续 。
2.尺寸变量
是组成不同形状的符号在量度上的变量。衡量尺寸变量要从几何面的直径、长、宽、高和多边形的面积作比较。
3.方向变量
适用于长形或线状的符号。圆形符号(甚至正方形符号)就没有方向之分。
4.颜色变量
最活跃的一种视觉变量。
5.网纹变量
指在一个符号或面积内部对线条或图形记号的重复交替使用。可归纳为线划网纹、点状网纹和混合网纹。
视觉变量的扩展
发生时长
指符号形象在屏幕上从出现到消失所经历的时间。
变化速率
描述符号状态改变的速度。
变化次序
把符号状态变化过程中各帧状态按出现的时间顺序,离散化处理成各帧状态值,使之渐次出现。
节 奏
是对符号周期性变化规律的描述。
地图符号的设计要求
所谓“图案化”就是抓住物体的基本特征并加以扩张,用较规则的图案表示出来。
指符号群体内部的相互关系,主要是逻辑关系。
各种不同的地图类型和不同的读者对象对符号形式的要求不同。
包括符号的尺寸、精细程度、符号用色是否可行及经费成本。
下面是一张地图制图,可以观察其中的地图符号:
坐标系
空间参考( Spatial Reference)是 GIS 数据的骨骼框架,能够将我们的数据定位到相应的位置,为地图中的每一点提供准确的坐标。 在同一个地图上显示的地图数据的空间参考必须是一致的,如果两个图层的空间参考不一致,往往会导致两幅地图无法正确拼合,因此开发一个 GIS 系统时,为数据选择正确的空间参考非常重要。
地理坐标系
为球面坐标。参考平面地是椭球面,坐标单位:经纬度;
投影坐标系
为平面坐标。参考平面地是水平面,坐标单位:米、千米等;
地图服务
动态地图服务
切片服务
矢量切片服务
栅格切片服务
影像服务
三维场景服务
要素服务
几何服务
地理处理服务
空间数据库
关系型数据库+空间拓展
Oracle + Oracle Spatial/sde
SqlServer(自带空间存储与管理能力) + sde https://docs.microsoft.com/zh-cn/sql/relational-databases/spatial/spatial-data-sql-server?view=sql-server-ver15
Mysql(新版本支持空间存储与管理能力)
Postgresql + postgis
非关系型空间数据库
MongoDB
MongoDB 是一个基于分布式文件存储的数据库。
空间索引
三维建模软件
CityEngine
3dmax
SketchUp
Autodesk
Autodesk 123D
VUE Pioneer
FreeCAD
PhotoMesh
NaroCAD
Blender
Open SCAD
Wings 3D
ZCAD
GIS应用领域
GIS主要应用在环境评估、军事公安、水利电力、国土管理、邮电通讯、交通运输、农林牧业、统计、商业金融、公共设施管理等领域,应用方向主要有:
资源管理
GIS服务于农业和林业和油田、矿产等能源,能解决农业和林业、油田、矿产等领域各种资源(如土地、森林、草场)分布、分级、统计和制图等问题。
资源配置
GIS可配置城市中的公用设施、救灾减灾中物资、全国范围内能源和粮食的供应等,以确保资源的最合理配置和发挥最大效益。
基础设施管理
天然气管线、电信、自来水、电力设施、道路交通、排污设施等城市地上地下基础设施的管理、统计、汇总都可以利用GIS来完成,从而高效作业。
可视化应用
以数字地形模型为基础,GIS能建立城市、大型建筑工程、著名风景名胜区的三维可视化模型,实现多角度浏览,可广泛应用于宣传、城市和区域规划、大型工程管理和仿真、旅游等领域。
城市规划和管理
空间规划是GIS的重要舞台,特别是城市规划和管理方面。在大规模城市基础设施建设中,GIS可以保证绿地的比例和合理分布,确保学校、公共设施、运动场所、服务设施等辐射范围达到最高。
土地信息系统和地籍管理
借助GIS技术,可以监测土地使用性质变化、地块轮廓变化、地籍权属关系变化等土地和地籍管理,对土地开展自动分类和面积统计,提升土地利用效率,降低违法用地监督成本等。
应急响应
在发生洪水、战争、核事故等重大自然或人为灾害时,GIS可以及时获取灾区影像,为安排最佳的人员撤离路线,配备相应的运输和保障设施提供影像和数据服务。
生态、环境管理与模拟
GIS有助于高效分析区域生态规划、环境现状、环境影响,为污染物削减分配的决策、环境与区域可持续发展的预测提供支持,还可以对生态环境进行空间模拟,以更好的了解和预知区域生态环境。
地学研究与应用
利用GIS工具,可以完成地形分析、流域分析、土地利用研究、经济地理研究、空间决策支持、空间统计分析、制图等。
商业与市场
GIS的空间分析和数据库功能对商业设施的建立,周边区域市场潜力的分析给予有力支撑。
GIS 常见功能
基础功能
地图导航、测量、标绘、鹰眼图、比例尺等基本地图功能
查询功能
简单属性查询和空间查询
自定义属性查询
属性、空间组合查询
多重查询
查询统计
POI搜索
空间分析功能
缓冲区分析
泰森多边形
叠加分析
插值分析
网络分析
选址分析、路径规划
拓扑检查分析
栅格代数运算
聚合分析
区域汇总分析
矢量裁剪、合并分析
密度分析
空间可视化
单值专题图
分段专题图
热力图
聚类图层
点云
迁徙图
格网图
建筑模型
地下管网模型
WebGIS开发技术体系
WebGIS开发平台
esri平台
Web: Arcgis api for javascript3.x/4.x esri-leaflet
WebFramework: ArcGIS Web AppBuilder
Server: arcgis server arcgis runtime for java
desktop:arcgis desktop(arcmap arccatolog)
mobile:ArcGIS Runtime SDK for Android ArcGIS Runtime SDK for iOS
database:arcsde postgresql oracle sqlserver mysql
超图平台
web:SuperMap iClient for Leaflet/OpenLayers/MapboxGL/3D-WebGL 同时提供 vue react 的部分组件
WebFramework:SuperMap IClient10i Vue
server:iServer iPortal iEdge iManager
mobile:iMobile iTablet(React Native)
desktop:iDesktop iDesktopX
Database:SuperMap SDX+ Oracle SqlServer MySQL Postgresql
开源GIS
Web:leaflet openlayers mapbox
webFramework:leaflet + vue/react openlayers + react/openlayers mapboxgl + react
Cesium/Mapbox + vue/react deck.gl + react
Server:GeoServer
mobile:native hybrid
desktop:qgis udig
Database: postgresql + postgis
WebGIS SDK
Leaflet
Leaflet 插件地址:https://leafletjs.com/plugins.html
网格切片:https://www.cnblogs.com/tuboshu/p/10752337.html
Openlayers
Arcgis api for js 3.x
Arcgis api for js 4.x
SuperMap iClient for Leaflet
Mapbox GL
WebGIS开发痛点
原生HTML JS CSS 体量庞大,bug层出不穷,复用度低
第三方组件 插件混乱
无法适应快速变化的需求
沟通成本大
如何开发一个GIS库 ,如何开发一个 GIS 组件
目标用户 边界 局限性 适用场景 用什么语言?用什么插件 源码分析
坐标转换
单个坐标点转换 矢量数据坐标转换 栅格数据坐标转换 地理配准
WebGIS开发模式
前后端一体化
WebADF框架 ArcGIS Web ADF for .NET能够集成丰富的GIS功能到Web应用程序中。ADF包含一组和Visual Studio集成的Web控件和组件来开发Web应用。Web ADF建立在.NET框架之上,利用一套定制的Web控件和提供本地和远程数据资源访问的新类来扩展.NET框架。
前后端分离-模块化开发
基于 flex 和 silverlight的开发框架
ArcGIS Viewer for Flex ArcGIS Viewer for Microsoft Silverlight
基于JQuery Dojo的 模块化开发 框架
WebAppbuilder
基于Vue react 的组件化开发框架
工程化开发模式
Web开发体系
前端工程化与持续集成
Web发展方向
pre code ----------> low code -----------> no code
WebGIS 开发方案
SOD WebGIS 技术方案
GIS 平台:ArcGIS 10.6
WebGIS 框架
BasicGIS 框架: WebAppbuilder
轻量级GIS :Vue 全家桶 + ArcGIS API for JavaScript
技术选型依据:1.开发成本;2.GIS开发人员技术路线;3.WebGIS 应用类别
WebGIS技术选型方案
项目型业务系统
平台选择:超图平台和ArcGIS平台
WebGIS框架:
SuperMap IClient10i Vue
WebAppbuilder
SuperMap iClient for Leaflet/OpenLayers/MapboxGL/3D-WebGL + vue全家桶
ArcGIS API for JavaScript 4.x + vue全家桶/react
选型依据:项目人员成本 开发成本
WebGIS 产品
产品应用方向
1.智能制图
2.WebGIS 组件库开发
3.WebGIS 框架研发
框架方案
平台选择
开源产品(qgis/udig + geoserver + leaflet/openlayers/mapbox)
WebGIS架构
前端:vue react
后端:node 和 Java
移动端:hybrid
GIS 未来发展趋势
三维GIS
GIS时空大数据
云GIS
高精度地图
虚拟现实
数字孪生
人工智能
关于WebGIS 开发的一些思考
1.如何看待新技术
2.功能已经有了, 有必要重新开发吗?
3.WebGIS 和 前端
4.业务实现与代码质量的冲突:业务的快速实现与质量的更高保障,如何权衡