【649】shapely strtree STRtree 构建 RTree
class strtree.STRtree(geometries)
- STRtree构造函数采用一系列几何对象, 几何对象的引用将保留并存储在R-tree中
- strtree.query(geom)
- 返回strtree中所有几何体的外延与geom的外延相交的几何体的列表
- 后续使用所需的二进制谓语(intersects相交、crosses交叉、contains包含、overlaps重叠)对返回的子集进行搜索,可能需要根据特定的空间关系进一步筛选结果
1 2 3 4 5 6 7 8 9 10 11 | >>> from shapely.strtree import STRtree >>> points = [Point(i, i) for i in range ( 10 )] >>> tree = STRtree(points) >>> query_geom = Point( 2 , 2 ). buffer ( 0.99 ) >>> [o.wkt for o in tree.query(query_geom)] [ 'POINT (2 2)' ] >>> query_geom = Point( 2 , 2 ). buffer ( 1.0 ) >>> [o.wkt for o in tree.query(query_geom)] [ 'POINT (1 1)' , 'POINT (2 2)' , 'POINT (3 3)' ] >>> [o.wkt for o in tree.query(query_geom) if o.intersects(query_geom)] [ 'POINT (2 2)' ] |
- 获取查询结果的原始索引,需要创建一个辅助字典,使用几何ID作为键,因为形状几何本身不可哈希
1 2 3 | >>> index_by_id = dict (( id (pt), i) for i, pt in enumerate (points)) >>> [(index_by_id[ id (pt)], pt.wkt) for pt in tree.query(Point( 2 , 2 ). buffer ( 1.0 ))] [( 1 , 'POINT (1 1)' ), ( 2 , 'POINT (2 2)' ), ( 3 , 'POINT (3 3)' )] |
- strtree.nearest(geom)
返回在strtree中离geom最近的对象
1 2 3 | >>> tree = STRtree([Point(i, i) for i in range ( 10 )]) >>> tree.nearest(Point( 2.2 , 2.2 )).wkt 'Point (2 2)' |
说明:计算的时候是通过外接矩形,因此可以召回的多边形会更多
posted on 2021-08-17 20:25 McDelfino 阅读(2202) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
2016-08-17 【213】IDL函数汇总
2016-08-17 【212】HDF更新数据&HDF创建
2012-08-17 【072】◀▶ Android (IV) - 显示及后台