作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 SpatiaLite 网站上,他们解释了如何使用 .osm
数据来创建一个 SpatiaLite 数据库,该数据库包含一个表,其中每一行都是道路图的弧。然后,他们在 their website 中解释了计算从 A 到 B 的最短路径的过程。 :
VirtualNetwork
来自 .osm
使用他们提供的工具文件 select * from VirtualNetwork where NodeFrom=267209305 and NoteTo=267209702
得到最短路径NodeFrom
和 NodeTo
.否则,我将无法首先执行最短路径查询。 最佳答案
以 https://www.gaia-gis.it/gaia-sins/spatialite-cookbook/html/dijkstra.html 为例正如您所说,我们可以找到执行此查询的两个节点(154348 和 130324)之间的路由:
select *
from tuscany_net
where nodefrom = 154348
and nodeto = 130324
tuscany_nodes
用
tuscany_net
的结果过滤它的表如下:
select node_id, st_y(geometry) latitude, st_x(geometry) longitude
from tuscany_nodes
where node_id in (
select nodeto
from tuscany_net
where nodefrom = 154348
and nodeto = 130324
)
node_id latitude longitude
130324 43.843969 10.981256
130337 43.843960 10.981382
130352 43.844300 10.981580
130414 43.845558 10.982525
130420 43.845541 10.982572
...
select st_astext(Geometry)
from tuscany_net
where nodefrom = 154348
and nodeto = 130324 limit 1
LINESTRING(11.138376 42.739078, 11.137961 42.738531,
11.13765 42.738001, 11.137428 42.737463, 11.136459 42.734198,
11.136129 42.733111, 11.135814 42.732221, 11.135666 42.732069,
11.135485 42.731948, 11.135242 42.731884, 11.134913 42.731891,
... )
tuscany_nodes
)执行查询。由于节点表包含代表节点的点(几何),因此最好的方法是执行空间查询以获得
from
和
to
节点。例如,您可以使用 st_distance 函数获取距离目标点 (
here you can find the SQL functions reference list for SpatiaLite 4.2.0) 比给定距离更近的节点:
select node_id
from tuscany_nodes
where st_distance(Geometry, makepoint(9.69561, 44.44792), 1) < 10
关于sqlite - 如何从 NodeID 获取长/纬度信息,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36232399/
我是一名优秀的程序员,十分优秀!