python Shapely 使用指南
翻译: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)]
python Shapely 使用指南的更多相关文章
- Python面向对象编程指南
Python面向对象编程指南(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1SbD4gum4yGcUruH9icTPCQ 提取码:fzk5 复制这段内容后打开百度网 ...
- Python 最佳实践指南 2018 学习笔记
基础信息 版本 Python 2.7 Python 3.x Python2.7 版本在 2020 年后不再提供支持,建议新手使用 3.x 版本进行学习 实现 CPython:Python的标准实现: ...
- PEP 8 - Python代码样式指南
PEP 8 - Python代码样式指南 PEP: 8 标题: Python代码风格指南 作者: Guido van Rossum <python.org上的guido>,Barry Wa ...
- Python 编码风格指南
原文:http://python.jobbole.com/84618/ 本文超出 PEP8 的范畴以涵盖我认为优秀的 Python 风格.本文虽然坚持己见,却不偏执.不仅仅涉及语法.模块布局等问题,同 ...
- PYTHON 最佳实践指南(转)
add by zhj: 本文参考了The Hitchhiker's Guide to Python,当然也加入了作者的一些东西.The Hitchhiker's Guide to Python 的gi ...
- (转)PEP 8——Python编码风格指南
PEP 8——Python编码风格指南标签(空格分隔): Python PEP8 编码规范原文:https://lizhe2004.gitbooks.io/code-style-guideline-c ...
- 机器学习实践:《Python机器学习实践指南》中文PDF+英文PDF+代码
机器学习是近年来渐趋热门的一个领域,同时Python 语言经过一段时间的发展也已逐渐成为主流的编程语言之一.<Python机器学习实践指南>结合了机器学习和Python 语言两个热门的领域 ...
- 学习推荐《从Excel到Python数据分析进阶指南》高清中文版PDF
Excel是数据分析中最常用的工具,本书通过Python与Excel的功能对比介绍如何使用Python通过函数式编程完成Excel中的数据处理及分析工作.在Python中pandas库用于数据处理,我 ...
- Python开发人员指南
本指南是一个全面的资源贡献 给Python的 -为新的和经验丰富的贡献者.这是 保持由维护的Python同一社区.我们欢迎您对Python的贡献! 快速参考 这是设置和添加补丁所需的基本步骤.了解基础 ...
随机推荐
- android 第三方 图表
1.XCL-Charts 直接利用Canvas api画出图形,各有好处. XCL-Chart尽量把图的绘制逻辑封装在类中,而把绘制相关的各 个元素开放出来,目的是在保证开发效率的同时,给程序员足够多 ...
- ACM: SGU 101 Domino- 欧拉回路-并查集
sgu 101 - Domino Time Limit:250MS Memory Limit:4096KB 64bit IO Format:%I64d & %I64u Desc ...
- linq中join的用法
join方法 public static IEnumerable<TResult> Join<TOuter, TInner, TKey, TResult>( this IEnu ...
- 关于mysql(或MariaDB)中的用户账号格式
之前在修改数据库本地root用户密码时,发现我远程连接的root用户的密码并没有改变,之后查了一下,发现原来这两个root不是同一个用户(汗..) 于是联想到之前配置数据库每次给用户赋予远程连接权限时 ...
- hdu Remainder
这道题是道很明显的bfs题.因为对数论没什么研究 ,所以这道题目里的两个关键点并不知道,看了别人的题解才知道 . 1.为避免取模后出现负数,采用:x%y=(x%y+y)%y 2.全部采用对m*k取模后 ...
- 树莓派3b+ 用samba与windows共享文件
1. 树莓派安装samba sudo apt-get install samba 2. 设置一个公共目录 cd /;sudo mkdir share;sudo chmod 777 sharesudo ...
- 关于web api 2 客户端请求Post
(一).客户端的部分代码[需要添加NuGet程序包] 附:Client 声明方法 HttpClient client = new HttpClient(); client.BaseAddress = ...
- UIBezierPath 的使用
使用UIBezierPath类可以创建基于矢量的路径,这个类在UIKit中.此类是Core Graphics框架关于path的一个封装.使用此类可以定义简单的形状,如椭圆或者矩形,或者有多个直线和曲线 ...
- 关于百度分享——bdCustomStyle一点bug
最近碰到一个项目,因为用上百度分享,出现了奇怪的bug. 具体是,当访问JSP页面时,js脚本会执行一次,而java脚本执行了两次. 最后排查发现是百度分享js脚本的问题,把"bdCusto ...
- SVN 的安装与配置
1.下载subclipse1.6的site包 2.把这个site-1.6.2解压开,将其内部的文件,全部放到 C:\Program Files\MyEclipse\MyEclipse 9\dropin ...