python使用shapely判断两条线是否相交
2023-04-18 14:13:02 时间
- 安装shapely模块
pip install shapely
实现代码
import shapely.wkt as wkt
if __name__ == '__main__':
line1 = wkt.loads("LINESTRING (116.23760690616871 40.17090730499467, 116.23760690616871 40.17091615348095)")
line2 = wkt.loads("LINESTRING (116.23761690616871 40.17092015348095, 116.23760690616871 40.17092015348095)")
# 判断线线是否相交
print(line1.intersects(line2))
# 增加0.3米的buffer, 这里0.3/100000后的单位是米
polygon1 = line1.buffer(0.3/100000)
polygon2 = line2.buffer(0.3/100000)
# 判断线段扩展buffer后的范围是否相交
print(polygon1.intersects(polygon2))
结果
False
True
BaseGeometry.buffer()方法参数说明
1. cap_style-----端点扩展方式
- 1(CAP_STYLE.round) 默认,半圆形扩展
- 2(CAP_STYLE.flat) 不扩展
- 3(CAP_STYLE.square) 方形扩展
端点按半圆形扩展
line = wkt.loads("LINESTRING (116.23760690616871 40.17090730499467, 116.23760690616871 40.17091615348095)")
polygon = line.buffer(0.5/100000)
端点不扩展
line = wkt.loads("LINESTRING (116.23761690616871 40.17092015348095, 116.23760690616871 40.17092015348095)")
polygon = line.buffer(0.2/100000, cap_style=2)
端点按方形扩展
line = wkt.loads("LINESTRING (116.23761690616871 40.17092015348095, 116.23760690616871 40.17092015348095)")
polygon = line.buffer(0.2/100000, cap_style=3)
2. join_style-----折角连接方式
- 1(JOIN_STYLE.round) 默认,圆弧连接
- 2(JOIN_STYLE.mitre) 折角连接
- 3(JOIN_STYLE.bevel)斜面连接
圆弧连接
line = wkt.loads("LINESTRING (116.23761690616871 40.17092015348095, 116.23760690616871 40.17092015348095, 116.23759890616871 40.17091530499467)")
polygon = line.buffer(0.2/100000, join_style=1)
折角连接
line = wkt.loads("LINESTRING (116.23761690616871 40.17092015348095, 116.23760690616871 40.17092015348095, 116.23759890616871 40.17091530499467)")
polygon = line.buffer(0.2/100000, join_style=2)
斜面连接
line = wkt.loads("LINESTRING (116.23761690616871 40.17092015348095, 116.23760690616871 40.17092015348095, 116.23759890616871 40.17091530499467)")
polygon = line.buffer(0.2/100000, join_style=3)
相关文章
- 【华为机试真题详解 Python实现】数字加减游戏【2023 Q1 | 100分】
- 使用Python调用ImageMagick将序列帧生成GIF
- 第8章 python标准库
- [python语法基础]
- python入门之python编程语言(简介)
- python中的None与False
- 利用python和循环实现赶鸭子问题
- Python私有属性、私有方法,子类不能继承父类的私有属性和私有方法,修改私有属性的值 ,类属性,静态方法,__new__
- python变量前加*
- Python 随机生成双色球
- Python 基础教程【1】:Python介绍、变量和数据类型、输入输出、运算符
- [数据结构] python 队列解决迷宫问题
- 如何获取python中的关键字/保留字
- python模拟通讯录的数据删除功能
- Python面试题_第 (3) 章
- 用python实现新建文件夹及移动、复制文件
- Python基础(十三)——文件操作(open函数、close函数)
- 利用python实现类似数据库中instr功能
- C --- wait(NULL) 作用?
- Python 串口数据打包与解析