Python+Spatialite+Virualknn

2024-09-30 01:23:06 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,我正在使用Spatialite Virtualknn尝试使用开放街道地图数据和Python进行一些路由

下载完澳大利亚osm数据后,我提取了一个roads图层并创建了一个单独的Spatialite数据库

spatialite_osm_net.exe -o australia-latest.osm.pbf -d aus_road.sqlite -T roads

然后我从Spatialite_gui运行了这个查询

select ST_AsText(ref_geometry)   
from knn where f_table_name = 'roads'  
and ref_geometry = ST_POINT(145.61249, -38.333801)

得到了这3个结果

POINT(145.61249 -38.333801)  
POINT(145.61249 -38.333801)  
POINT(145.61249 -38.333801)  

因此,我随后创建了这个快速而讨厌的Python脚本(Python 3.9.0,但我尝试了其他版本)

import spatialite  
file = "./aus_road.sqlite"  
db = spatialite.connect(file)  
allme = db.execute("select ST_AsText(ref_geometry) from knn where f_table_name = 'roads' and ref_geometry = ST_POINT(145.61249, -38.333801)")  
allme.fetchall()  

我得到的只是

[]

有人知道为什么Virtualknn不能在Python中工作吗


Tags: 数据refsqliteosmselectpointstgeometry

热门问题