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)]
复制代码

 





本文转自jihite博客园博客,原文链接:http://www.cnblogs.com/kaituorensheng/p/5711752.html,如需转载请自行联系原作者


相关文章
|
Python
Python 的运算符和语句(条件、循环、异常)基本使用指南
Python 的运算符和语句(条件、循环、异常)基本使用指南
|
索引 Python
Python基础 | pandas.dataframe 专题使用指南
pandas.dataframe 专题使用指南。
4884 0
|
3月前
|
定位技术 API C++
Python GIS神器shapely 2.0新版本来了
Python GIS神器shapely 2.0新版本来了
|
JavaScript 前端开发 Linux
Python 包管理(pip、conda)基本使用指南
Python 包管理(pip、conda)基本使用指南
941 1
|
测试技术 数据库 Python
|
数据可视化 数据挖掘 Python
Python数据可视化入门:Matplotlib初级使用指南
Matplotlib是Python中最常用的数据可视化库之一。它提供了丰富的图表类型和灵活的自定义选项,能帮助我们以更直观的方式理解数据。本文将对Matplotlib的基本功能进行介绍,包括如何创建和自定义图表等。
|
计算机视觉 Python
【Python入门】Pycharm的使用指南
【Python入门】Pycharm的使用指南
|
SQL 存储 机器学习/深度学习
Python中内置数据库!SQLite使用指南! ⛵
使用Python内置库SQLite,可以方便地完成建表、插入数据、查询数据等数据库操作,也可以配合pandas进行灵活使用!高效工具库get!
1111 2
Python中内置数据库!SQLite使用指南! ⛵