Question List in December, 2022

Good good study, day day up.
好好学习,天天向上。

1、工作记录

工作内容不对外公开。

2、日常积累

2.1 QGIS

使用 QGIS → GDAL → 矢量杂项 → 执行 SQL 语句时,需要注意几何不能为空,否则导出的 SHP 文件将会与想要的结果产生较大的偏差。

SELECT * FROM BD_Junction WHERE GeomWGS84 IS NOT NULL;

SpatialLite

#spatialite

SQLite 是遵循 ACID 的轻量型数据库管理系统,其核心是由相对较小的C代码实现的,具有简单、稳定、易于使用和真正的轻量等特点。 每个 SQLite 数据库都是一个简单文件,用户可以方便地复制、压缩,并通过网络进行传输和交换。 SQLite 程序本身是跨平台的,其数据库文件也是跨平台的,其嵌入式设计被集成到许多系统与平台中。SpatiaLite 是 SQLite 数据的空间数据引擎。

参考文献 6 是其官方网站,主要提供了 libspatialite、spatialite-tools 命令行工具以及 spatialite-gui 可视化界面等工具以对 SQLite 数据库进行空间拓展。CentOS 目前提供的 libspatialite 版本为 4.1.1,安装 spatialite-tools 时也应选择 4.1.1 以免编译失败。

SpatiaLite 符合 OGC SFSQL标准,在 SQLite 数据库 SQL 语句的基础上支持一些常见的 SQL 空间查询函数以供使用,如: AsText()GeomFromText()Area()PointN() 等。

SpatiaLite 提供的大多数的空间查询方法可以被分组到以下四个分类当中(Stolze 2003),除非另有声明,以上提到的方法和函数都在同一个2D坐标维数空间下操作。:

  1. 几何构型和外在数据格式的转化
    几何要素的表达对应有 WKT、WKB以及 Geography Markup Language(GML) 三种数据格式。这三者可以相互转换,如 WKT 数据可以用 ST_WKTToSQLST_Geometry 转化, ST_AsText 用于ST_Geometry 值向 WKT 的转化。
  2. 从几何构型中检索特征或度量, 例如:
    ST_Dimension :翻译一个 ST_Geometry 值的维数。
    ST_GeometryType :返回一个 ST_Geometry 值的类型。
    ST_SRID : 评述或更换空间参考系统运算符。
    ST_IsMeasured :检测 ST_Geometry 值是否被测量。
  3. 比较两个几何构型的空间关系, 例如:
    ST_Equals :测试两个几何构型的空间相等性。
    ST_Disjoint :测试两个几何构型是否相交。
    ST_Intersects, ST_Crosses , ST_Overlaps :测试几何构型的内部是否相交。
    ST_Touches :测试两个几何构型是否在边界处相接,但内部却不相交。
  4. 从其他中产生新的几何构型,例如:
    ST_Buffer :产生给定几何构型周围一定距离的缓冲区。
    ST_ConvexHull :计算几何构型的凸边界。
    ST_Difference , ST_Intersection 以及 ST_Union :重构点集之间的差、交、并拓扑计算。

2.2 业务知识

道路相关

IC, Inter Change

高速公路转换出入口,即高速公路至一般公路的出入匝道。
“IC” 标识可以下高速公路。

JC, Joint Change/Circuit

高速公路连接口或连接匝道,即不同高速公路之间的连接线路。
“JC” 标识可以直接转到另一条高速公路上。

导航地图等级

目前,行业将导航地图划为三个等级:

SD:主要帮助司机进行导航,精度要求不高,一般是在 15 米左右,由粒度较粗的道路拓扑信息构成。
LD:主要用于辅助驾驶,加入了车道级的拓扑信息,精度一般在亚米级别。
HD:主要用于自动驾驶,精度达到了厘米级别,还包含了丰富的语义信息。

2.3 编译

#vscode-no_module_named_site

提示 ImportError: No module named site 错误

unset PYTHONPATH
unset PYTHONHOME

解决 oh-my-zsh git 进入目录卡顿问题

# 设置 oh-my-zsh 不读取文件变化信息(在 git 项目目录执行下列命令)
git config --add oh-my-zsh.hide-dirty 1

C++ NAN 值生成及判断

#cplusplus

#include <iostream>
#include <cmath>

int main(){
    double x = std::numeric_limits<double>::quiet_NaN();
    std::cout << std::isnan(x) << std::endl;
    x = 2.0;
    std::cout << std::isnan(x) << std::endl;
}

参考文献

  1. CSDN 博客. 空间数据索引RTree完全解析[EB/OL].

  2. Go 语言社区. CentOS使用yum指令显示”ImportError: No module named site”错误。[EB/OL].

  3. GitHub. 解决 oh-my-zsh git 进入目录卡顿问题 #11[EB/OL].

  4. Python与开源GIS. 7.4. 开始使用 SpatiaLite[EB/OL].

  5. CSDN 博客. Spatialite 操作 Sql 语句[EB/OL].

  6. RD 文档. 安装SpatiaLite[EB/OL].

  7. 百家号. 百度自动驾驶有哪些独特优势?Apollo Day给出了这些干货[EB/OL].