之前使用rtree来进行拓扑检查,主要是使用GeoDataFrame的sindex来实现的,但是由于某种未知的原因,rtree总是会莫名奇妙的运行错误,且没有任何错误提示,因此博主自己实现了一版拓扑检查,思想和之前其实差不多:先得到所有几何体的外接矩形框,然后根据外接矩形框判断是否有可能相交(矩形框相交,几何体才有相交的可能性),通过外接矩形框的筛选之后,再对可能相交的几何体进行一个精确的相交判断,代码实现如下:
import geopandas
import copy
import matplotlib.pyplot as plt
import time
gdf=geopandas.read_file("D:\\problem.shp")
gdf=gdf[gdf.boundary.is_simple]
gdf.reset_index(drop=True,inplace=True)
import shapely.geometry as geo
def RectangleIntersection(r1,r2): #判断两矩形是否相交 r[xmin,ymin,xmax,ymax]
x1min,y1min,x1max,y1max=r1
x2min,y2min,x2max,y2max=r2
w1=x1max-x1min
h1=y1max-y1min
w2=x2max-x2min
h2=y2max-y2min
xc1=(x1min+x1max)/2
yc1=(y1min+y1max)/2
xc2=(x2max+x2min)/2
yc2=(y2max+y2min)/2
if abs(xc1-xc2)
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?