翻译: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)]

最新文章

  1. 深入理解javascript选择器API系列第一篇——4种元素选择器
  2. LeetCode 22. Generate Parentheses
  3. hdu 2046 骨牌铺方格
  4. mongoDB 安装配置
  5. C++经典编程题#4:单词翻转
  6. 【C#】构造函数的特点
  7. CallableStatement执行存储过程
  8. Html 加载音乐代码mp3
  9. Xamarin.forms 自定义dropdownview控件
  10. iOS 打包上传AppStore相关(1)-相关证书配置
  11. Jms的MessageListener中的Jms事务
  12. 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  13. Hibernate基础一
  14. coursera-斯坦福-机器学习-吴恩达-笔记week2
  15. 最大似然估计实例 | Fitting a Model by Maximum Likelihood (MLE)
  16. [干货]Kaggle热门 | 用一个框架解决所有机器学习难题
  17. django 文件上传 研究
  18. CentOS下yum安装mcrypt错误:No package php-mcrypt available.解决方法
  19. 【最大流之ek算法】HDU1532 求最大流
  20. 在 Linux 上使用 Nginx 和 Gunicorn 托管 Django 应用

热门文章

  1. odeforces Beta Round #77 (Div. 2 Only)
  2. hdu1272 小希的迷宫
  3. nginx配置文件中的location中文详解
  4. 【BZOJ2438】 [中山市选2011]杀人游戏 tarjan强连通分量+缩点
  5. Invalid escape sequence(valid ones are \b \t \n \f \r \&quot; \&#39; \\)
  6. Rational Rose 2007 破解版安装过程
  7. 使用command对象操作数据库
  8. Oracle 客户端免安装数据库连接
  9. C# empty private constructor
  10. [LintCode] Candy 分糖果问题