WebGIS面试题

202 阅读6分钟

1.矩阵和向量在GIS中的表达(已考)

在地理信息系统(GIS)中,矩阵(Matrix)和向量(Vector)是常用的数据表达形式。

几何表达

  1. 矩阵(Matrix):在 GIS 中,矩阵通常用于表示栅格数据或网格数据。栅格数据是由等间距的像元构成的二维数组,每个像元存储一个数值,例如高程、温度等。矩阵可以表示地表的栅格化数据,如数字高程模型(Digital Elevation Model,DEM)、遥感影像等。矩阵的每一单元格代表了一个空间位置上的数值,可以对其进行空间分析和统计计算。

  2. 向量(Vector):向量在 GIS 中用于表示矢量数据,例如点、线、面等地理要素。向量数据采用几何对象的方式来描述地理空间,通常包含几何属性和属性数据。几何属性描述了地理要素的空间位置和形状,如点的坐标、线的节点和拓扑关系、面的边界等。属性数据则包含了地理要素的属性信息,例如地名、人口数量等。常见的向量数据格式包括 Shapefile、GeoJSON、GML 等。

物理表达

矩阵在数学和计算机图形学中常用于表示坐标变换、线性变换等。矩阵可以描述从一个向量空间到另一个向量空间的线性映射

向量则代表具有大小和方向的物理量或数学对象。在数学中,向量可以表示物理向量(如位移、速度、力等),也可以表示抽象概念(如特征向量、权重向量等)

向量与矩阵相乘的几何含义

从几何角度来看,向量与矩阵相乘可以表示线性变换

矩阵可以用来描述旋转、缩放、平移等线性变换操作,而向量则表示待变换的点或向量。当一个向量与一个矩阵相乘时,相当于将该向量应用于矩阵所描述的线性变换,得到变换后的新向量。这个新向量的几何位置和方向与原始向量在变换下发生了相应的改变。

例如,考虑一个二维平面上的点P(x, y)和一个二维变换矩阵M。如果将P表示为一个列向量 [x, y] 的形式,那么向量与矩阵相乘的结果可以表示为 M * [x, y]。这相当于将点P通过矩阵M进行线性变换,得到变换后的新点P'。具体的变换效果取决于矩阵M的具体数值,例如,平移矩阵可以将点P沿着坐标轴平移一定的距离,旋转矩阵可以让点P绕原点旋转。

2.geom字段包含的空间索引(已考)

geom字段通常用于存储空间几何数据,例如点、线、多边形等。为了提高对空间数据的查询和分析效率,可以使用空间索引来优化空间数据的存储和检索。

空间索引是一种数据结构,用于组织和管理空间数据,以支持快速的空间查询操作。它可以减少数据遍历的数量,从而加快查询速度。

对于geom字段的空间索引,常见的索引类型有:

R树(R-tree):R树是一种多维索引结构,广泛应用于空间数据索引。它通过将空间对象分层次地组织起来,以支持范围查询、近邻查询等操作。

四叉树(Quadtree):四叉树是一种二维空间索引结构,通过递归地将空间划分为四个象限,以支持范围查询和空间分析。

3.postgis创建拓扑结构

调用pgr_createTopology方法,创建拓扑

select public.pgr_createTopology('postgres.pipe',0.000001,'shape','objectid','pgr_source','pgr_target')

执行该函数调用后,PostGIS 将会为指定的表创建拓扑结构。这将使得后续的空间网络分析操作,比如寻找最短路径、网络流分析等,更加高效和方便

4.3dtiles数据结构(已考)

3D Tiles的核心概念是将3D地理数据切割成瓦片(Tiles),类似于Web地图中的将地图区域切割成瓦片来提供动态加载和渲染的方式

入口文件是 tileset.json,各级瓦片用文件夹(目录)来组织

3dTiles至少有一个 tileset.json 文件,作为整个数据集的入口。它是一个 json 文件,描述了整个三维瓦片数据集,它记录的是上一节提及的“逻辑信息”,还包括一些其他的元数据。而“属性信息”、“嵌入的gltf模型” 则位于各个二进制瓦片文件中,这些二进制文件则由 tileset.json 中的瓦片中的 uri 来引用

root对象中有一个content,内有uri属性,其就记录了根瓦片的二进制数据文件的URL

瓦片的重要属性:

  • boundingVolume——绑定的边界体积,必须项
  • viewerRequestVolume——绑定体积,非必须项
  • geometricError——几何误差,必须项
  • refine——优化,非必须项
  • transform——4*4的转换矩阵,默认值为单位矩阵,非须项
  • content——瓦片内容,包括元数据和数据内容的链接
  • children——定义瓦片子集,非必项项

geometricError 就是一个对象外包球的直径,会根据相机位置计算投影屏幕所站的像素大小,瓦片被构建为基于HLOD的树型结构,以便随视角的远近而动态调整。这个执行过程中会产生一个像素级“屏幕空间误差”,这就是所谓的几何误差

boundingVolume:空间范围框,允许有box、sphere、region三种范围框,但是只能定义一种

Image.webp

refine(优化) 就是当低分辨率的瓦片在渲染时,高分辨率的子瓦片如何进行渲染的调度过程。优化分为替换和添加两种模式。替换(REPLACE)模式是如果子瓦片可替换父瓦片,父瓦片将不再渲染(出现); 如果瓦片具有累加细化性,则父子瓦片都将被渲染(出现),这叫作添加(“ADD”)模式

5.线性代数相关知识点汇总

特征值与特征向量

给定一个n×n的方阵A,如果存在一个非零向量v使得满足以下方程:

A * v = λ * v

其中λ是一个常数,那么λ就被称为矩阵A的特征值,而对应于特征值λ的非零向量v被称为矩阵A的特征向量

这个方程可以理解为矩阵A对特定方向上的向量进行了缩放。特征向量表示在这个缩放过程中保持方向不变的向量,而特征值则表示该缩放的比例因子

行列式和矩阵

行列式是一个标量值,它是一个方阵的特征之一。给定一个 n×n 的方阵

矩阵是一个由数值排列成行和列的矩形阵列。矩阵通常用大写字母表示,例如 A

行列式和矩阵区别:

格式:行列式是一个标量,没有行和列的概念;而矩阵是由元素排列成行和列的矩形阵列。

维度:行列式只适用于方阵,即行数和列数相等的矩阵;而矩阵可以是任意大小的矩阵,行数和列数可以不相等

矩阵可逆和矩阵的秩

在线性代数中,矩阵可逆指的是一个方阵可以通过矩阵运算逆转回原来的矩阵

1698722767758.png

矩阵的秩:矩阵列向量的最大线性无关组的个数

1698722804413.png