Sqlite根据点信息生成距离表
Sqlite generate distance table from point information
我有一个包含多个点的坐标的表。
| PointName | XCoor | YCoor |
+-----------+-------+-------+
| P1 | X1 | Y1 |
+-----------+-------+-------+
| P2 | X2 | Y2 |
+-----------+-------+-------+
....
我想生成一个包含两点之间距离的表格。
| Point1Name | Point2Name | Distance |
+------------+------------+----------+
| P1 | P2 | ZZZZZ |
+------------+------------+----------+
....
为了能够计算两点之间的距离,我启用了动态扩展加载,并使用扩展函数模块进行算术计算。然而,我不太确定是否可以使用任何SQL技巧创建输出表?
我在C++程序中需要这个函数,所以在最坏的情况下,我会尝试用C++的方式来实现它,而不是使用SQL语句。然而,这将需要我使用sqlite3_exec((并定义我的回调函数,而且很可能我最终会在第一个回调函数中运行另一个sqlite3_exec((来获得所需的输出。
提前感谢
这个SQL应该为您生成一个表:
create table distances as
select a.PointName as Point1Name, b.PointName as Point2Name,
sqrt((a.XCoor - b.XCoor) * (a.XCoor - b.XCoor) + (a.YCoor - b.YCoor) * (a.YCoor - b.YCoor)) as Distance
from points a, points b
where a.rowid != b.rowid
你真的需要把它放在桌子上吗?您可以在想要获取值时执行select语句。
SELECT
a.PointName AS Point1Name,
b.PointName AS Point2Name,
POWER(POWER(a.xCoor - b.xCoor, 2) + POWER(a.yCoor - b.yCoor, 2), 1 / 2) AS Distance
FROM
Points a, Points b
WHERE
a.PointName <> b.PointName
;
每个距离将有两次(p1<->p2和p2<->p1(
相关文章:
- 正在查找文档以获得PS4平台的C++中的设备信息
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- 奇怪的(对我来说)返回声明 - 在谷歌上找不到任何关于它的信息
- 如何修复此错误:未定义对"距离(浮点数,浮点数,浮点数,浮点数,浮点数)"的引用
- 如何设置一个范围来提取我想要获得的信息
- 用C++程序计算圆锥体的体积、球体的体积、八边形的面积和两点之间的距离
- 系统参数信息A 与 SPI_GETMOUSE 返回 0
- 为什么 gcovr 会生成空覆盖率统计信息?
- 我已经阅读了很多关于 2d 数组的信息,但我在作业中使用它时遇到了麻烦
- 计算所有对之间的曼哈顿距离
- 如何使用发送数据包所花费的时间计算两个节点之间的距离?
- Levenshtein 两个文件的距离花费了太多时间
- 将信息输入到下面显示的结构向量中的正确语法/格式是什么
- 调试符号中缺少 QObject 类信息(编辑但存在其他 Qt 类)
- 为什么数组大小信息可用于"sizeof"运算符和 delete[] 运算符,但在将数组作为参数传递到
- Pisarze - 来自波兰奥林匹克信息学的数据分析任务
- 将数组信息存储到 c++ 向量中有一个"Access violation reading location"
- C++20 个模块在 clang (Windows):在最简单的示例中键入信息错误
- C++ 如何暂停控制台输出,以便用户可以在继续之前阅读信息
- Sqlite根据点信息生成距离表