shapely使用笔记

news/2024/7/5 19:37:15

1. 头文件

from shapely.geometry import MultiPolygon, GeometryCollection, LinearRing
from shapely.ops import cascaded_union, nearest_points
from shapely.wkt import loads
from shapely.wkt import dumps

2. 点

geometry.Point

常用方法

构造

Point(x, y, z)

近似相等

# decimal为判断时的小数精度
# 例如decimal = 5表示小数点后5位以下的部分都舍去然后再进行判断
p1.almost_equals(p2, decimal)

2. 折线

即polyline

geometry.LineString

常用方法

构造

# 用列表进行初始化
LineString(list([(1, 2), (3, 4)]))# 扩展:也可以用两个列表拼接
LineString(list(p1.coords) + list(p2.coords))

延展

# 使其有宽度,类型变为Polygon
self.buffer(buffer_size, cap_style)

常用属性

获取所有点坐标

# 返回坐标字符串
self.coords# 转换成列表
list(self.coords)# 是否有效,例如长度不能为0
self.is_valid

3. 环

geometry.LinearRing

常用属性

有效

# 自相交或者面积为0都视为无效
self.is_valid

方向

# 逆时针排列
self.is_ccw

4. 面

有可能是简单多边形框polygon,也有可能是两个多边形框嵌套

注意:只能是二维的

geometry.Polygon

常用方法

相交

# 判断与折线相交
self.intersection(line)# 判断与其它面相交
self.intersection(polygon)

包含

self.cotains(line)

常用属性

所有点坐标

self.coords

外框点坐标

self.exterior.coords

面积

self.area

与其它类型的转换

shapely转字符串

geom = dumps(self.geom, rounding_precision=precision)

字符串转shapely

self.geom = loads(self.geom)

5. 多面

多个polygon组合在一起

常用方法

构造

# 一般返回类型为面
multi_polygon = MultiPolygon(polygons)

6. 基本方法

求并

union_polygon = cascaded_union(multi_polygon)

寻找最近邻点

# 返回两个点
points = nearest_points(polygon_1, polygon_2)

http://lihuaxi.xjx100.cn/news/248458.html

相关文章

自我介绍

大家好,我叫蒋继发。这篇文章是我在博客园的第一篇博文,也是我第一次写博客,我希望通过这篇文章让大家了解我,也了解我开博客的目的。 我是一名大学本科二年级学生,论学习成绩来说属于中等偏下的学生。我觉得自己比较叛…

大叔也说并行和串行`性能提升N倍(N由操作系统位数和cpu核数决定)

并行是.net4.5主打的技术,同时被封装到了System.Threading.Tasks命名空间下,对外提供了静态类Parallel,我们可以直接使用它的静态方法,它可以并行一个委托数组,或者一个IEnumerable的迭代,而今天主要通过一…

hdu1305Immediate Decodability(字典树)

这题看是否 这题能A是侥幸,解决的办法是先存一下输入的字符串,进行排序。 Problem DescriptionAn encoding of a set of symbols is said to be immediately decodable if no code for one symbol is the prefix of a code for another symbol. We will …

介绍ABC 蜂群算法网站

来源连接: Artificial Bee Colony (ABC) Algorithm Homepage https://abc.erciyes.edu.tr/software.htm 网站主页如下:通过访问可以获得源代码以及相关的说明 可以通过连接获得代码以及文档,自己觉的很全面

Python进度条

1. 简介 在日常运行程序的过程中常常涉及到循环迭代过程,对于执行时间很短的程序来说倒无所谓,但对于运行过程有明显耗时的涉及循环迭代的程序,为其加上进度条(progress bar),是帮助我们监测代码执行进度以…

html标签的显示模式(块级标签,行内标签,行内块标签)(转)

html标签的显示模式(块级标签,行内标签,行内块标签) 今天讲课的时候,讲到了html中的标签的显示模式,大致分为块级标签和行内标签。那么初学者在刚使用标签的时候会发现有些属性在一些标签上不起作用&#x…

Web Api单元测试写法

例如我们在Web Api项目中有个Controller public class SomeController : ApiController { public HttpResponseMessage Get() { // 一些操作 return Request.CreateResponse(HttpStatusCode.OK, someModel); } }如果你在单元测试中直接调用 SomeController 的Get()方…

Android:ViewPager为页卡内视图组件添加事件

在数据适配器PagerAdapter的初始化方法中添加按钮事件&#xff0c;这里是关键&#xff0c;首先判断当前的页卡编号。必须使用当前的view来获取按钮。 Overridepublic Object instantiateItem(View arg0, int arg1) {if (arg1 < 3) {((ViewPager) arg0).addView(mListViews.g…