python Shapely 使用指南
2024-09-28 02:56:57
翻译:http://toblerity.org/shapely/manual.html
引入包
from shapely.geometry import Point
from shapely.geometry import LineString
共有的变量和方法
object.area
Returns the area (float) of the object.
object.bounds
返回对象的(minx,miny,maxx,maxy)元组(float类型)
object.length
返回对象的长度
object.geom_type
返回对象类型
object.distance(other)
返回本对象和另一个对象的距离
object.representative_point()
Returns a cheaply computed point that is guaranteed to be within the geometric object.
>>> from shapely.geometry import Point
>>> print Point(0,0).distance(Point(0,1))
1.0
>>> from shapely.geometry import LineString
>>> line = LineString([(0,0), (1,1), (1,2)])
>>> line.area
0.0
>>> line.bounds
(0.0, 0.0, 1.0, 2.0)
>>> line.length
2.414213562373095
>>> line.geom_type
'LineString'
Point
class Point(coordinates)
三种赋值方式
>>> point = Point(0,0)
>>> point_2 = Point((0,0))
>>> point_3 = Point(point)
一个点对象有area和长度都为0
>>> point.area
0.0
>>> point.length
0.0
坐标可以通过coords或x、y、z得到
>>> p = Point(2,3)
>>> p.coords
<shapely.coords.CoordinateSequence object at 0x7ffbc3d60dd0> >>> list(p.coords)
[(2.0, 3.0)]
>>> p.x
2.0
>>> p.y
3.0
coords可以被切片
>>> p.coords[:]
[(2.0, 3.0)]
LineStrings
LineStrings构造函数传入参数是2个或多个点序列
一个LineStrings对象area为0,长度非0
>>> line = LineString([(0,0), (0,1), (1,2)])
>>> line.area
0.0
>>> line.length
2.414213562373095
获得坐标
>>> line.coords[:]
[(0.0, 0.0), (0.0, 1.0), (1.0, 2.0)]
>>> list(line.coords)
[(0.0, 0.0), (0.0, 1.0), (1.0, 2.0)]
LineString依然可以接受一个同类型对象
>>> line2 = LineString(line)
>>> line2.coords[:]
[(0.0, 0.0), (0.0, 1.0), (1.0, 2.0)]
常见格式转换
wkt: Well Know Text
wkb: Well Kown Binary
>>> Point(1,1).wkt
'POINT (1 1)'
>>> Point(1,1).wkb
'\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0?\x00\x00\x00\x00\x00\x00\xf0?'
>>> Point(1,1).wkb.encode('hex')
'0101000000000000000000f03f000000000000f03f'
>>>
>>> Point(1,1).wkb.encode('hex')
'0101000000000000000000f03f000000000000f03f'
两者都有loads和dumps方法
对于wkt
>>> from shapely.wkt import dumps, loads
>>> s = dumps(Point(1,2))
>>> s
'POINT (1.0000000000000000 2.0000000000000000)'
>>> ss = loads(s)
>>> ss
<shapely.geometry.point.Point object at 0x7ffbc3d783d0>
>>> ss.coords[:]
[(1.0, 2.0)]
对于wkb
>>> from shapely.wkb import dumps, loads
>>> s = dumps(Point(1,2), hex=True)
>>> s
'0101000000000000000000F03F0000000000000040'
>>> ss = loads(s, hex=True)
>>> ss
<shapely.geometry.point.Point object at 0x7ffbc3d78790>
>>> ss.coords
<shapely.coords.CoordinateSequence object at 0x7ffbc3d783d0>
>>> ss.coords[:]
[(1.0, 2.0)]
最新文章
- 深入理解javascript选择器API系列第一篇——4种元素选择器
- LeetCode 22. Generate Parentheses
- hdu 2046 骨牌铺方格
- mongoDB 安装配置
- C++经典编程题#4:单词翻转
- 【C#】构造函数的特点
- CallableStatement执行存储过程
- Html 加载音乐代码mp3
- Xamarin.forms 自定义dropdownview控件
- iOS 打包上传AppStore相关(1)-相关证书配置
- Jms的MessageListener中的Jms事务
- 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
- Hibernate基础一
- coursera-斯坦福-机器学习-吴恩达-笔记week2
- 最大似然估计实例 | Fitting a Model by Maximum Likelihood (MLE)
- [干货]Kaggle热门 | 用一个框架解决所有机器学习难题
- django 文件上传 研究
- CentOS下yum安装mcrypt错误:No package php-mcrypt available.解决方法
- 【最大流之ek算法】HDU1532 求最大流
- 在 Linux 上使用 Nginx 和 Gunicorn 托管 Django 应用
热门文章
- odeforces Beta Round #77 (Div. 2 Only)
- hdu1272 小希的迷宫
- nginx配置文件中的location中文详解
- 【BZOJ2438】 [中山市选2011]杀人游戏 tarjan强连通分量+缩点
- Invalid escape sequence(valid ones are \b \t \n \f \r \"; \&#39; \\)
- Rational Rose 2007 破解版安装过程
- 使用command对象操作数据库
- Oracle 客户端免安装数据库连接
- C# empty private constructor
- [LintCode] Candy 分糖果问题