Question List in December, 2022
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坐标维数空间下操作。:
- 几何构型和外在数据格式的转化:几何要素的表达对应有 WKT、WKB以及 Geography Markup Language(GML) 三种数据格式。这三者可以相互转换,如 WKT 数据可以用
ST_WKTToSQL向ST_Geometry转化,ST_AsText用于ST_Geometry值向 WKT 的转化。 - 从几何构型中检索特征或度量, 例如:
ST_Dimension:翻译一个 ST_Geometry 值的维数。ST_GeometryType:返回一个 ST_Geometry 值的类型。ST_SRID: 评述或更换空间参考系统运算符。ST_IsMeasured:检测 ST_Geometry 值是否被测量。 - 比较两个几何构型的空间关系, 例如:
ST_Equals:测试两个几何构型的空间相等性。ST_Disjoint:测试两个几何构型是否相交。ST_Intersects,ST_Crosses,ST_Overlaps:测试几何构型的内部是否相交。ST_Touches:测试两个几何构型是否在边界处相接,但内部却不相交。 - 从其他中产生新的几何构型,例如:
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;
}
参考文献
CSDN 博客. 空间数据索引RTree完全解析[EB/OL].
Go 语言社区. CentOS使用yum指令显示”ImportError: No module named site”错误。[EB/OL].
GitHub. 解决 oh-my-zsh git 进入目录卡顿问题 #11[EB/OL].
Python与开源GIS. 7.4. 开始使用 SpatiaLite[EB/OL].
CSDN 博客. Spatialite 操作 Sql 语句[EB/OL].
RD 文档. 安装SpatiaLite[EB/OL].
百家号. 百度自动驾驶有哪些独特优势?Apollo Day给出了这些干货[EB/OL].