1. GIS基础概念
1.1 什么是GIS?
GIS(Geographic Information System,地理信息系统)是在计算机软硬件支持下,对地理空间数据进行采集、存储、管理、分析、可视化和应用的综合性技术系统。其核心在于将空间位置信息与属性数据相结合,实现空间分析与决策支持。
1.2 GIS的三大基本要素
- 硬件:计算机、GPS设备、遥感传感器、服务器等物理设备。
- 软件:ArcGIS、QGIS、SuperMap、GeoServer等GIS平台及开发组件。
- 数据:矢量数据、栅格数据、属性数据、元数据等,是GIS的核心资产。
1.3 GIS的主要功能
- 数据采集与编辑:通过测绘、遥感、GPS、数字化等方式获取空间数据。
- 数据存储与管理:利用空间数据库对海量地理数据进行组织和管理。
- 空间查询与分析:包括缓冲区分析、叠加分析、网络分析、地形分析等。
- 可视化表达:通过地图、图表、三维场景等方式展示地理信息。
- 空间决策支持:为城市规划、资源管理、应急响应等提供决策依据。
1.4 高频面试题
Q1:GIS与CAD、传统地图制图的区别是什么?
CAD侧重于精确的工程制图,缺乏空间参考和属性管理能力;传统地图制图是静态的纸质表达;GIS则强调空间数据的动态管理、空间分析和多源数据集成,具有更强的空间决策支持能力。
Q2:GIS在智慧城市中有哪些典型应用?
智慧交通(实时路况与路径规划)、智慧城管(部件事件管理)、智慧环保(污染源监控)、智慧应急(灾害模拟与救援调度)、智慧规划(多规合一)等。
Q3:GIS与RS、GPS之间有什么关系?
三者合称3S技术。RS(遥感)提供大范围、多时相的数据源,GPS(全球定位系统)提供高精度的空间定位信息,GIS则负责对来自RS和GPS的数据进行存储、管理、分析和可视化,三者相互支撑、协同工作。
Q4:什么是空间数据?空间数据有哪些基本特征?
空间数据是描述地理实体空间位置、形状、大小及其属性特征的数据。基本特征包括空间位置特征(坐标)、属性特征(非空间描述)、时间特征(时态信息)以及空间关系特征(拓扑关系、度量关系等)。
Q5:GIS中常用的数据采集方式有哪些?
主要包括全站仪/RTK实测、GPS定位采集、遥感影像解译、地图数字化(矢量化)、无人机航测、激光雷达扫描以及从第三方平台获取开放数据等。
Q6:什么是元数据?GIS中元数据有什么作用?
元数据是描述数据的数据,记录数据的来源、精度、坐标系、采集时间、处理过程等信息。其作用是帮助用户理解数据质量、实现数据共享与互操作、便于数据检索和管理。
Q1:GIS与CAD、传统地图制图的区别是什么?
CAD侧重于精确的工程制图,缺乏空间参考和属性管理能力;传统地图制图是静态的纸质表达;GIS则强调空间数据的动态管理、空间分析和多源数据集成,具有更强的空间决策支持能力。
Q2:GIS在智慧城市中有哪些典型应用?
智慧交通(实时路况与路径规划)、智慧城管(部件事件管理)、智慧环保(污染源监控)、智慧应急(灾害模拟与救援调度)、智慧规划(多规合一)等。
2. 空间数据模型与数据结构
2.1 矢量数据模型
矢量数据以点、线、面几何要素表达地理实体,每个要素包含几何信息和属性信息。常见格式包括Shapefile、GeoJSON、KML、GML等。
- 点(Point):表示离散的地理实体,如井盖、POI点。
- 线(Polyline):表示线状地物,如道路、河流。
- 面(Polygon):表示面状区域,如行政区、湖泊。
2.2 栅格数据模型
栅格数据以规则格网(像元)阵列表达地理现象,每个像元存储一个数值。常见格式包括GeoTIFF、IMG、DEM等。栅格数据适合表达连续分布的现象,如高程、温度、遥感影像。
2.3 矢量与栅格数据对比
| 对比项 | 矢量数据 | 栅格数据 |
|---|---|---|
| 数据精度 | 高,边界精确 | 取决于像元大小 |
| 数据结构 | 紧凑,存储量小 | 结构简单,存储量大 |
| 空间分析 | 拓扑分析强 | 叠加分析高效 |
| 适合场景 | 离散要素管理 | 连续表面表达 |
2.4 空间索引
空间索引是加速空间数据检索的关键技术。常见空间索引包括R树、四叉树、网格索引、GeoHash等。R树是GIS中最常用的空间索引结构,广泛应用于PostGIS、Oracle Spatial等空间数据库中。
2.5 高频面试题
Q1:矢量数据与栅格数据如何选择?
需要精确边界和拓扑关系时选择矢量;需要表达连续表面或进行大规模栅格运算时选择栅格。实际项目中常采用矢栅一体化策略。
Q2:什么是拓扑关系?常见的拓扑关系有哪些?
拓扑关系是空间实体之间不受几何变形影响的关系,包括相邻、包含、相交、重叠等。典型应用如多边形邻接分析、网络连通性分析。
Q3:什么是拓扑错误?常见的拓扑错误有哪些?如何修复?
拓扑错误是空间要素之间违反拓扑规则的问题,常见的有悬挂点、伪节点、重叠面、缝隙、自相交等。修复方法包括使用ArcGIS的拓扑检查工具、PostGIS的ST_IsValid和ST_MakeValid函数等。
Q4:R树索引的基本原理是什么?为什么适合空间数据?
R树是一种平衡树结构,通过最小外接矩形(MBR)对空间对象进行分层组织,查询时先判断MBR是否相交,快速排除无关对象。它适合空间数据是因为空间对象没有天然的一维排序,R树利用空间邻近性实现高效的范围查询和最近邻查询。
Q5:什么是GeoHash?它有什么优缺点?
GeoHash是一种将二维经纬度编码为一维字符串的空间编码方法,字符串前缀相同的区域在空间上相邻。优点是编码简单、支持前缀匹配和快速邻近查询;缺点是边界突变问题,相邻区域编码可能差异较大,且精度随编码长度变化。
Q6:什么是八叉树?主要用于什么场景?
八叉树是四叉树在三维空间的扩展,将三维空间递归划分为8个子立方体。主要用于三维空间索引、点云数据管理、三维场景渲染的视锥裁剪等场景。
Q1:矢量数据与栅格数据如何选择?
需要精确边界和拓扑关系时选择矢量;需要表达连续表面或进行大规模栅格运算时选择栅格。实际项目中常采用矢栅一体化策略。
Q2:什么是拓扑关系?常见的拓扑关系有哪些?
拓扑关系是空间实体之间不受几何变形影响的关系,包括相邻、包含、相交、重叠等。典型应用如多边形邻接分析、网络连通性分析。
3. 坐标系统与地图投影
3.1 地理坐标系
地理坐标系用经纬度描述地球表面位置,常见的有WGS84、CGCS2000、北京54、西安80等。WGS84是全球定位系统使用的基准坐标系,CGCS2000是我国当前法定的大地坐标系。
3.2 投影坐标系
投影坐标系是将三维球面坐标转换为二维平面坐标的数学变换结果。常见投影包括高斯-克吕格投影、UTM投影、墨卡托投影、兰伯特投影等。
3.3 常用地图投影
- 墨卡托投影:等角圆柱投影,广泛用于航海图和Web地图(Web Mercator)。
- 高斯-克吕格投影:等角横切椭圆柱投影,我国大中比例尺地形图采用。
- UTM投影:通用横轴墨卡托投影,全球标准化分带投影。
- 兰伯特投影:等角圆锥投影,适用于中纬度地区。
3.4 坐标转换
坐标转换包括不同基准面之间的转换(如WGS84转CGCS2000)和不同投影之间的转换。常用方法有七参数法、三参数法、莫洛金斯基模型等。
3.5 高频面试题
Q1:WGS84与CGCS2000有什么区别?
两者都是地心坐标系,但参考椭球参数略有差异,WGS84由美国建立,CGCS2000由中国建立,两者在厘米级精度下存在微小差异,高精度应用需进行转换。
Q2:什么是Web Mercator投影?为什么Web地图普遍使用它?
Web Mercator是墨卡托投影的变体,以WGS84椭球为基准,将地球近似为球体进行投影。其优点是计算简单、全球连续、方向保持,适合Web地图的瓦片切分和缩放显示。
Q3:什么是地理坐标系和投影坐标系?两者有什么区别?
地理坐标系用经纬度表示位置,单位是度,基于椭球面;投影坐标系是将球面坐标投影到平面后得到的坐标,单位是米,便于距离和面积计算。GIS中通常先确定地理坐标系,再根据需要选择投影坐标系。
Q4:什么是七参数转换?七参数分别指什么?
七参数转换是不同基准面之间进行坐标转换的常用方法,包括3个平移参数(dx、dy、dz)、3个旋转参数(rx、ry、rz)和1个尺度参数(k)。适用于大范围、高精度的基准转换。
Q5:高斯-克吕格投影是如何分带的?我国采用什么分带方式?
高斯-克吕格投影按经度分带,常用6度带和3度带。6度带从0度经线起每隔6度一带,用于1:2.5万及更小比例尺;3度带从1.5度经线起每隔3度一带,用于1:1万及更大比例尺。我国横跨多个投影带,中央经线分别为75°E、81°E、87°E等。
Q6:什么是中央经线?为什么投影时要设置中央经线?
中央经线是投影带中心的那条经线,投影后长度不变形。设置中央经线是为了控制投影变形,离中央经线越远变形越大,因此通过分带将变形控制在允许范围内。
Q1:WGS84与CGCS2000有什么区别?
两者都是地心坐标系,但参考椭球参数略有差异,WGS84由美国建立,CGCS2000由中国建立,两者在厘米级精度下存在微小差异,高精度应用需进行转换。
Q2:什么是Web Mercator投影?为什么Web地图普遍使用它?
Web Mercator是墨卡托投影的变体,以WGS84椭球为基准,将地球近似为球体进行投影。其优点是计算简单、全球连续、方向保持,适合Web地图的瓦片切分和缩放显示。
4. 空间数据结构与空间数据库
4.1 空间数据库核心概念
空间数据库是用于存储、管理和查询空间数据的数据库系统。主流空间数据库包括PostGIS(PostgreSQL扩展)、Oracle Spatial、MySQL Spatial、SQL Server Spatial等。
4.2 空间数据引擎
空间数据引擎负责将空间数据与关系数据库结合,提供空间索引、空间查询和空间分析能力。典型代表包括ArcSDE、PostGIS、SpatiaLite等。
4.3 空间SQL
空间SQL扩展了标准SQL,支持空间数据类型和空间函数。常见空间函数包括ST_Contains、ST_Intersects、ST_Distance、ST_Buffer、ST_Within等。
sql
-- 查询与指定点距离小于1000米的POI
SELECT name, geom
FROM poi
WHERE ST_DWithin(geom, ST_SetSRID(ST_MakePoint(116.39, 39.9), 4326), 1000);
4.4 高频面试题
Q1:PostGIS中如何创建空间索引?
使用GIST索引:CREATE INDEX idx_poi_geom ON poi USING GIST(geom);。GIST索引基于R树实现,可显著加速空间查询。
Q2:空间数据库与普通数据库的区别是什么?
空间数据库支持空间数据类型、空间索引、空间函数和空间分析操作,能够高效处理几何对象之间的拓扑关系和距离计算。
Q3:PostGIS中常用的空间数据类型有哪些?
主要包括Geometry(几何类型,支持点、线、面等)、Geography(地理类型,基于球面计算)、Raster(栅格类型)以及3D几何类型(如PointZ、PolygonZ)等。
Q4:ST_Contains和ST_Within有什么区别?
ST_Contains(A, B)判断A是否包含B,即B完全在A内部;ST_Within(A, B)判断A是否在B内部,即A完全被B包含。两者是互逆关系:ST_Contains(A, B)等价于ST_Within(B, A)。
Q5:什么是空间数据引擎?它解决了什么问题?
空间数据引擎是连接空间数据与关系数据库的中间层,负责将空间数据的存储、索引和查询能力集成到数据库中。它解决了空间数据在传统关系数据库中难以高效存储和检索的问题,代表产品有ArcSDE、PostGIS等。
Q6:空间数据库如何存储几何对象?
通常使用WKT(Well-Known Text)或WKB(Well-Known Binary)格式存储几何对象。WKT是文本表示,便于阅读和交换;WKB是二进制表示,存储紧凑、解析高效,是数据库内部存储和网络传输的常用格式。
Q1:PostGIS中如何创建空间索引?
使用GIST索引:CREATE INDEX idx_poi_geom ON poi USING GIST(geom);。GIST索引基于R树实现,可显著加速空间查询。
Q2:空间数据库与普通数据库的区别是什么?
空间数据库支持空间数据类型、空间索引、空间函数和空间分析操作,能够高效处理几何对象之间的拓扑关系和距离计算。
5. 空间分析基础
5.1 缓冲区分析
缓冲区分析是在点、线、面要素周围建立一定宽度的多边形区域,用于分析要素的影响范围。典型应用包括噪音影响范围分析、设施服务半径分析。
5.2 叠加分析
叠加分析是将多个图层进行空间叠加,生成新的图层和属性信息。常见类型包括相交(Intersect)、联合(Union)、擦除(Erase)、标识(Identity)等。
5.3 网络分析
网络分析基于道路网、管网等网络数据,进行路径分析、服务区分析、资源分配等。典型应用包括最短路径、最优路径、设施选址。
5.4 地形分析
基于DEM数据进行坡度、坡向、山体阴影、视域、水文分析等。典型应用包括洪水淹没模拟、可视性分析、坡度分级。
5.5 空间插值
空间插值是根据已知采样点数据推算未知区域数值的方法。常见方法包括反距离权重法(IDW)、克里金插值(Kriging)、样条插值等。
5.6 高频面试题
Q1:缓冲区分析与叠加分析有什么区别?
缓冲区分析是生成影响范围区域,属于单图层分析;叠加分析是多图层之间的空间运算,用于综合多源信息。
Q2:什么是克里金插值?它和IDW有什么区别?
克里金插值基于空间自相关性和变异函数模型,考虑空间结构特征,能给出估计误差;IDW仅基于距离加权,计算简单但未考虑空间相关性。
Q3:什么是叠加分析中的相交(Intersect)和联合(Union)?有什么区别?
相交(Intersect)只保留输入图层相互重叠的部分,输出范围是各图层的交集;联合(Union)保留所有输入图层的全部范围,输出范围是各图层的并集,重叠区域会被拆分并保留所有属性。
Q4:网络分析中,最短路径和最优路径有什么区别?
最短路径只考虑距离最短,通常以长度为目标函数;最优路径则综合考虑距离、时间、成本、拥堵程度等多个因素,通过加权计算得到综合最优的路径。实际导航中通常使用最优路径。
Q5:什么是视域分析?它有什么应用?
视域分析是基于DEM判断某一点或某条线在给定视距和视角条件下能够看到的区域范围。典型应用包括瞭望塔选址、通信基站覆盖分析、军事观察点选择、景观可视性评估等。
Q6:什么是泰森多边形?它有什么用途?
泰森多边形(Voronoi图)是由一组离散点生成的区域划分,每个区域内任意位置到该区域中心点的距离小于到其他中心点的距离。常用于最近邻分析、服务范围划分、降雨量估算、商业网点辐射范围分析等。
Q1:缓冲区分析与叠加分析有什么区别?
缓冲区分析是生成影响范围区域,属于单图层分析;叠加分析是多图层之间的空间运算,用于综合多源信息。
Q2:什么是克里金插值?它和IDW有什么区别?
克里金插值基于空间自相关性和变异函数模型,考虑空间结构特征,能给出估计误差;IDW仅基于距离加权,计算简单但未考虑空间相关性。
6. GIS数据格式与数据交换
6.1 常见矢量格式
- Shapefile:ESRI经典格式,由多个文件组成(.shp、.shx、.dbf等)。
- GeoJSON:基于JSON的轻量级开放格式,适合Web应用。
- KML/KMZ:Google Earth的XML格式,适合三维地球展示。
- GML:OGC标准XML格式,适合数据互操作。
- GeoPackage:基于SQLite的开放格式,支持矢量、栅格和属性一体化。
6.2 常见栅格格式
- GeoTIFF:带地理参考的TIFF格式,广泛用于遥感影像和DEM。
- IMG:ERDAS格式,支持多波段影像。
- MrSID:高压缩比影像格式,适合海量影像存储。
6.3 数据互操作与OGC标准
OGC(Open Geospatial Consortium)制定了WMS、WFS、WMTS、WCS等Web服务标准,实现跨平台、跨系统的空间数据共享与互操作。
6.4 高频面试题
Q1:Shapefile有哪些局限性?
属性字段名长度受限(10字符)、不支持拓扑关系、单个文件大小有限制(2GB)、多文件管理不便、不支持三维几何等。
Q2:WMS和WFS有什么区别?
WMS(Web Map Service)返回地图图片(栅格),适合可视化;WFS(Web Feature Service)返回矢量要素数据,支持查询和编辑,适合数据操作。
7. WebGIS与GIS开发
7.1 WebGIS架构
WebGIS基于B/S架构,由客户端、Web服务器、GIS服务器和空间数据库组成。典型技术栈包括:
- 前端:OpenLayers、Leaflet、Mapbox GL JS、Cesium(三维)。
- 后端:GeoServer、MapServer、ArcGIS Server、SuperMap iServer。
- 数据库:PostGIS、Oracle Spatial、MySQL Spatial。
7.2 地图瓦片技术
地图瓦片是将地图按金字塔结构切分为固定大小的图片(通常256×256像素),按层级和行列号组织。瓦片技术大幅提升了地图加载速度,是Web地图的核心技术。
7.3 常见空间分析库
- JTS/GEOS:Java/C++空间分析库,实现OGC几何操作。
- Turf.js:JavaScript空间分析库,适合浏览器端轻量分析。
- Shapely:Python空间几何库,配合GeoPandas使用。
7.4 高频面试题
Q1:前端地图库如何选择?
轻量2D应用选Leaflet;功能丰富2D应用选OpenLayers;高性能3D可视化选Mapbox GL JS或Cesium;需要三维地球和倾斜摄影选Cesium。
Q2:什么是矢量瓦片?与栅格瓦片相比有什么优势?
矢量瓦片传输的是矢量数据(如GeoJSON、MVT格式),由客户端实时渲染。优势包括文件体积小、渲染清晰、支持交互和样式动态切换。
8. 遥感与GIS集成
8.1 遥感基本概念
遥感(Remote Sensing)是通过传感器远距离获取地表信息的技术。常见遥感数据源包括Landsat、Sentinel、MODIS、高分系列、资源系列等卫星。
8.2 遥感影像处理
- 辐射校正:消除大气散射和传感器噪声影响。
- 几何校正:消除影像几何变形,配准到地理坐标。
- 影像增强:改善影像视觉效果,突出目标信息。
- 分类:监督分类、非监督分类、面向对象分类等。
8.3 遥感与GIS的关系
遥感为GIS提供数据源,GIS为遥感提供分析平台。两者结合广泛应用于土地利用变化监测、环境监测、灾害评估等领域。
8.4 高频面试题
Q1:什么是NDVI?如何计算?
NDVI(归一化植被指数)用于监测植被覆盖状况,计算公式为:NDVI = (NIR - Red) / (NIR + Red),取值范围为-1到1,值越高表示植被越茂盛。
Q2:监督分类与非监督分类有什么区别?
监督分类需要预先选择训练样本,通过分类器(如最大似然、支持向量机)进行分类;非监督分类无需训练样本,通过聚类算法(如K-means、ISODATA)自动分组。
9. GIS性能优化与常见问题
9.1 空间查询优化
- 合理创建空间索引(GIST、R树)。
- 使用空间函数时避免全表扫描。
- 对大数据集进行空间分区或分块。
- 使用空间缓存(如Redis Geo)加速高频查询。
9.2 地图渲染优化
- 使用矢量瓦片替代栅格瓦片。
- 前端进行要素抽稀和聚合。
- 使用WebGL加速渲染(Mapbox GL、Cesium)。
- 按需加载和视口裁剪。
9.3 高频面试题
Q1:海量点数据如何高效渲染?
可采用点聚合(Cluster)、WebGL渲染、四叉树抽稀、矢量瓦片等技术,结合前端Canvas/WebGL进行高性能绘制。
Q2:空间查询慢如何排查?
检查是否使用空间索引、查询条件是否合理、数据量是否过大、是否进行了不必要的全表扫描,可通过EXPLAIN分析执行计划。
10. 总结与备考建议
GIS八股文基础篇覆盖了GIS核心概念、空间数据模型、坐标系统、空间等内容