Skip to main content

几何对象、谓词和操作

项目描述

github-动作 连体工作服

笛卡尔平面中几何对象的操作和分析。

https://c2.staticflickr.com/6/5560/31301790086_b3472ea4e9_c.jpg

Shapely 是一个 BSD 许可的 Python 包,用于操作和分析平面几何对象。它基于广泛部署的GEOSPostGIS的引擎)和JTS(从中移植 GEOS)库。Shapely 不关心数据格式或坐标系,但可以很容易地与这些软件包集成。有关更多详细信息,请参阅:

用法

这是通过缓冲一个点来构建近似圆形补丁的典型示例。

>>> from shapely.geometry import Point
>>> patch = Point(0.0, 0.0).buffer(10.0)
>>> patch
<shapely.geometry.polygon.Polygon object at 0x...>
>>> patch.area
313.65484905459385

有关更多示例和指导,请参阅手册。

要求

匀称 1.8 要求

  • 蟒蛇> = 3.6

  • GEOS >=3.3

匀称地安装

Shapely 可以从源分发或几种内置分发中的一种安装。

内置发行版

对于没有或不知道如何使用其平台的编译器和 Python SDK 的用户来说,内置发行版是唯一的选择,对于不想打扰的用户来说也是一个不错的选择。

Linux、OS X 和 Windows 用户可以使用最新版本的 pip (8+) 从 Python 包索引中获得带有 GEOS 的 Shapely Wheels:

$ pip install shapely

Shapely 可通过 apt、yum 和 Homebrew 等系统包管理工具获得,也由 Canopy 和 Anaconda 等流行的 Python 发行版提供。如果您使用 Conda 包管理器安装 Shapely,请务必使用 conda-forge 通道。

Windows 用户还有另一个不错的安装选项: https ://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely 上发布的轮子。这些可以通过指定整个 URL 使用 pip 安装。

源分布

如果您想从源代码构建 Shapely 以与依赖于 GEOS 的其他模块(例如 cartopy 或 osgeo.ogr)兼容,或者想使用与项目轮子中包含的版本不同的 GEOS 版本,您应该首先安装 GEOS 库、Cython 和 Numpy(使用 apt、yum、brew 或其他方式),然后直接 pip 忽略二进制轮子。

$ pip install shapely --no-binary shapely

如果您已将 GEOS 安装到标准位置,则 geos-config 程序将用于获取编译器和链接器选项。如果 geos-config 不在您的可执行文件上,可以使用 GEOS_CONFIG 环境变量指定它,例如:

$ GEOS_CONFIG=/path/to/geos-config pip install shapely

一体化

Shapely 不读取或写入数据文件,但它可以使用几种众所周知的格式和协议进行序列化和反序列化。shapely.wkb 和 shapely.wkt 模块提供了受 Python 的 pickle 模块启发的转储程序和加载程序。

>>> from shapely.wkt import dumps, loads
>>> dumps(loads('POINT (0 0)'))
'POINT (0.0000000000000000 0.0000000000000000)'

Shapely 还可以使用类似 GeoJSON 的 dicts 与其他 Python GIS 包集成。

>>> import json
>>> from shapely.geometry import mapping, shape
>>> s = shape(json.loads('{"type": "Point", "coordinates": [0.0, 0.0]}'))
>>> s
<shapely.geometry.point.Point object at 0x...>
>>> print(json.dumps(mapping(s)))
{"type": "Point", "coordinates": [0.0, 0.0]}

开发和测试

开发 Shapely 的依赖项列在 requirements-dev.txt 中。生产安装不需要 Cython 和 Numpy,仅用于开发。强烈建议使用虚拟环境。

$ virtualenv .
$ source bin/activate
(env)$ pip install -r requirements-dev.txt
(env)$ pip install -e .

该项目使用 pytest 来运行 Shapely 的单元测试和文档测试套件。

(env)$ python -m pytest

支持

可以在GIS StackExchange上使用“shapely”标签询问有关使用 Shapely 的问题。

可以在https://github.com/shapely/shapely/issues报告错误。

学分

Shapely由以下人员编写:

另请参阅:https ://github.com/shapely/shapely/graphs/contributors 。

其他帮助来自:

  • Justin Bronn (GeoDjango) 获取 ctypes 的灵感

  • 马丁戴维斯 (JTS)

  • Sandro Santilli、Mateusz Loskot、Paul Ramsey 等人(GEOS 项目)

这项工作的主要部分得到了美国国家人文基金会 ( https://www.neh.gov ) 的资助(用于Pleiades)。

变化

1.8.4 (2022-08-17)

Bug修复:

  • 新的 c_geom_p 类型导致回归并已被删除 (#1487)。

1.8.3 (2022-08-16)

弃用:

STRtree 类将在 2.0.0 中更改,并且与 1.8.x 版本中的类不兼容。此更改废弃了 1.8a3(下)中的弃用公告。

打包:

PyPI 上发布的 1.8.3 的轮子包括 GEOS 3.10.3。

Bug修复:

  • GEOSMinimumClearance 的签名已更正,修复了影响 aarch64-darwin 的问题 (#1480)

  • 更正了返回和 arg 类型,并对面积、长度和距离属性进行了更严格的处理。

  • 在调用 GEOS 函数时创建了一个新的 c_geom_p 类型来替换 c_void_p (#1479)。

  • GEOS 3.10.3 中修复了一个不正确的多边形线交叉点 (#1427),它将包含在发布到 PyPI 的轮子中。

  • GEOS 缓冲区参数现在被破坏,修复了内存泄漏 (#1440)。

1.8.2 (2022-05-03)

  • 使多边形和多多边形按定义闭合,如线性环。解决#1246。

  • 在 macos 上执行 conda env 检查之前对 GEOS 执行冻结的应用程序检查,就像我们在 linux 上所做的一样 (#1301)。

  • 修复 #1098 中报告的最近点中 GEOS 坐标序列的泄漏。

1.8.1.post1 (2022-02-17)

此发布后解决了 1.8.1 源代码分发中的一个缺陷。1.8.1.post1 sdist 中不包含 .c 文件,并且需要 Cython 从源代码构建和安装。

1.8.1 (2022-02-16)

打包:

PyPI 上发布的 1.8.1 的轮子包括 GEOS 3.10.2。这个版本是迄今为止最好的 GEOS 版本。与以前版本相比的行为差异被认为是改进。

我们将首次发布 macos_arm64 的轮子(请参阅 PR #1310)。

Python版本支持:

Shapely 1.8.1 适用于 Python 3.6-3.10。

Bug修复:

  • 需要 Cython >= 0.29.24 以支持 Python 3.10 (#1224)。

  • 修复 array_interface_base (#1235)。

1.8.0 (2021-10-25)

这是最终的 1.8.0 版本。自 1.8rc2 以来没有任何变化。

1.8rc2 (2021-10-19)

建造:

添加了一个 pyproject.toml 文件来指定 _vectorized 和 _speedups 模块的构建依赖项(#1128)。要在没有这些构建依赖项的情况下顺利安装,请使用禁用 PEP 517 和 518 支持的构建工具的功能。

Bug修复:

  • PR #1042 的一部分,它添加了一个新的主要 GEOS 库名称以供搜索,已被 PR #1201 还原。

1.8rc1 (2021-10-04)

弃用:

BaseGeometry 的 most_exact() 方法已被弃用。它令人困惑,将在 2.0.0 中删除。而是使用 equals_exact() 方法。

Bug修复:

  • 我们确保始终在 _vectorized 之前导入 _speedups 模块,以避免在 Windows 上使用 Python 3.8 和 3.9 (#1184) 出现无法解释的情况。

1.8a3 (2021-08-24)

弃用:

STRtree 类弃用警告已被删除。2.0.0 中的类将向后兼容 1.8.0 中的类。

Bug修复:

  • __array_interface__ 仅引发 AttributeError,从 Numpy 1.21 (#1173) 开始不推荐使用所有其他异常。

  • STRtree 类现在在内部使用一对 item、geom 序列而不是 dict (#1177)。

1.8a2 (2021-07-15)

Python版本支持:

Shapely 1.8 将仅支持 Python 版本 >= 3.6。

新的功能:

  • STRtree 最近*() 方法现在采用一个可选参数,指定从结果中排除输入几何 (#1115)。

  • GeometryTypeError 已添加到 shapely.errors 中,并且会持续引发,而不是 1.7 版中的 TypeError 或 ValueError。为了向后兼容,新异常将派生自 TypeError 和 Value 错误,直到版本 2.0 (#1099)。

  • STRtree 类构造函数现在采用可选的第二个参数,即要存储在树中的对象序列。如果没有提供,几何的序列索引将像以前一样被存储(#1112)。

  • STRtree 类具有新的 query_geoms()、query_items()、nearest_geom() 和nearest_item() 方法 (#1112)。query() 和nearest() 方法仍然是query_geoms() 和nearest_geom() 的别名。

Bug修复:

  • 我们不再尝试加载 libc 来获取 Linux 上的 free 函数,而是从全局符号表中获取。

  • GEOS_getCoordSeq() 传递空几何时打印的 GEOS 错误消息通过从不传递空几何 (#1134) 来避免。

  • Python 的内置 super() 现在仅按照 PEP 3135 (#1109) 中的描述使用。

  • 如果 conda GEOS dll 存在(在 Windows 上),则仅加载它(#1108)。

  • 将 /opt/homebrew/lib 添加到要搜索 GEOS 共享库的目录列表中。

  • 添加了新的库搜索路径以帮助使用 cx_Freeze 创建应用程序。

1.8a1 (2021-03-03)

Shapely 1.8.0 将是一个过渡版本。有一些错误修复和新功能,但主要是关于 2.0.0 中即将发生的更改的警告。预计 1.8.0 之前还有几个预发布版本。有关如何更新代码的更多详细信息,请参阅 Shapely 1.8 / 2.0 的迁移指南 ( https://shapely.readthedocs.io/en/latest/migration.html )。

Python版本支持:

Shapely 1.8 将仅支持 Python 版本 >= 3.5 (#884)。

弃用:

以下函数和几何属性和方法将在 2.0.0 版本中删除。

  • ops.cascaded_union

  • 几何 .empty()

  • 几何 .ctypes 和 .__array_interface__

  • 多部分几何.__len__

  • 在几何对象上设置自定义属性

几何对象将在 2.0.0 版本中变得不可变。

STRtree 类将在 2.0.0 中完全改变。确切的未来 API 尚未确定,但将在 1.8.0 发布之前确定。

当使用这些功能中的任何一个时,将在 1.8a1 中发出弃用警告。

几何对象上已弃用的 .to_wkb() 和 .to_wkt() 方法已被删除。

新的功能:

  • 向几何类添加 normalize() 方法,公开 GEOSNormalize 算法 (#1090)。

  • 初始化 STRtree,每个节点的容量为 10 个项目 (#1070)。

  • 通过 auditwheel 版本 < 3.1 重新定位到 shapely/.libs 或通过 auditwheel 版本 >= 3.1 重新定位到 Shapely.libs 的加载库。

  • shapely.ops.voronoi_diagram() 计算几何或几何集合的 Voronoi 图(#833、#851)。

  • shapely.validation.make_valid() 修复无效的几何图形 (#883)

Bug修复:

  • 对于 pyinstaller,我们现在处理环境中多个 GEOS 库的情况,例如当 fiona 和 rasterio 轮子与 shapely 共同安装时 (#1071)。

  • ops.split 函数现在在触摸时拆分,以消除使用多部分和单部分拆分器 (#1034) 的结果之间令人困惑的差异。

  • 修复了 ops.substring 中顶点重复和顺序的几个问题 (#1008)。

打包:

  • 上传到 PyPI 的轮子将包括 GEOS 3.9.1。

1.7.1 (2020-08-20)

  • STRtree现在可以安全地实现 pickle 协议 (#915)。

  • 为minimum_clearance (#875, #874)添加了文档。

  • STRtree.__del__()中 ,当 lgeos 模块在退出时已被拆除(#897、#830)时,我们防止调用GEOSSTRtree_destroy 。

  • 更正了重叠()方法的文档(#920)。

  • 更正shapely.geometry.base.BaseGeometry.empty()中的测试,以消除内存泄漏,就像 #745 中报告的那样。

  • 不是从 libc 而是从进程全局符号 (#891) 中获取 free(),修复了在 OS X 10.15 和 10.16 上出现的错误。

  • 从复杂行中提取子字符串变得更加正确(#848、#849)。

  • 通过准备输入几何 (#871) 加快了复杂几何的拆分。

  • 修复函数 argtypes 连接中的错误 (#866)。

  • 改进了 STRtree 使用的文档 (#857)。

  • 改进了对 GeoJSON 坐标中的空列表或列表列表的处理 (#852)。

  • 多标签算法现在考虑了多边形孔(#851,#817)。

1.7.0 (2020-01-28)

这是最终的 1.7.0 版本。自 1.7b1 以来没有任何变化。

1.7b1 (2020-01-13)

第一个测试版。

1.7a3 (2019-12-31)

新的功能:

  • 缓冲操作现在可以是单面的(#806、#727)。

Bug修复:

  • 将 /usr/local/lib 添加到要搜索 GEOS 共享库的目录列表 (#795)。

  • 当给定一个大于结束位置的开始位置时,ops.substring 现在会返回一条以端到端顺序排列的坐标行 (#628)。

  • 为几何基类实现__bool__()以便bool(geom)返回geom.is_empty (#754) 的逻辑补码。

  • 删除对在 GEOS 版本字符串中找到的类似版本的字符串数量的断言。它可能是 2 或 3。

1.7a2 (2019-06-21)

  • 最近邻搜索已添加到 STRtree (#668)。

  • 不允许 MultiPolygon 序列作为 MultiPolygon 构造函数的参数,解决 #588。

  • 删除了以前用于支持 Python 2.5 的供应商化functools函数。

Bug修复:

  • 在 OS X (#735) 上使用已安装的二进制轮时避免重新加载 GEOS 共享库,解决问题 #553。

  • shapely.ops.orient 函数现在可以定向多个多边形和几何集合以及多边形(#733)。

  • 现在可以从点对象序列以及 x、y 序列序列构建多边形 (#732)。

  • 空多边形的外部现在等于空线性环 (#731)。

  • 空点对象的 bounds 属性现在返回一个空元组,与其他几何类型一致 (#723)。

  • #700 避免了将非字符串值传递给 WKT 加载器时的分段错误。

  • 当子线串与线串的开头重合时, ops.substring 的失败已得到修复 (#658)。

  • #655 防止了在空线串上插值的分段错误。

  • 多标签算法(#644)中添加了矩形多边形缺失的特殊情况。

  • LinearRing 可以从 LineString (#638) 创建。

  • 准备好的几何验证条件已在 #632 中收紧,以修复 #631 中报告的错误。

  • 尝试插入空几何不再导致分段错误,而是引发ValueError (#653)。

1.7a1 (2018-07-29)

新的功能:

  • Python 版本检查由包设置脚本进行。Shapely 1.7 仅支持 Python 版本 2.7 和 3.4+ (#610)。

  • 添加了一个新的EmptyGeometry类来支持 GeoPandas (#514)。

  • 添加了新的shapely.ops.substring函数 (#459)。

  • 添加了新的shapely.ops.clip_by_rect函数 (#583)。

  • 使用 sys._MEIPASS' 中指示的 DLL 来支持 PyInstaller 冻结的应用程序 (#523)。

  • shapely.wkb.dumps现在接受srid整数关键字参数来写入 WKB 数据,包括输出数据中的空间参考 ID (#593)。

Bug修复:

  • shapely.geometry.shape现在可以编组空的 GeoJSON 表示 (#573)。

  • 尝试准备PreparedGeometry (#577, #595)时会 引发异常。

  • 关键字参数已从几何对象的wkt属性获取器中删除(#581、#594)。

1.6.4.post1 (2018-01-24)

  • 修复此更改日志中损坏的标记,从而恢复我们在 PyPI 上格式良好的自述文件。

1.6.4 (2018-01-24)

  • 处理几何体被拆除时可能发生的TypeError (#473, #528)。

1.6.3 (2017-12-09)

  • 访问空多边形的 __geo_interface__ 时不再引发 AttributeError (#450)。

  • asShape现在像shape一样处理映射中的空坐标(#542)。请注意,asShape可能会在 Shapely 的未来版本中被弃用。

  • 在速度模式下检查 LineString 坐标的长度,防止在使用只有一个坐标的 LineStrings 时发生崩溃 (#546)。

1.6.2 (2017-10-30)

  • 已发布 1.6.2.post1 版本以解决上传到 PyPI 的 macosx 轮子的问题。

1.6.2 (2017-10-26)

  • 现在将线串按其端点之一拆分将成功,而不是因ValueError失败(#524,#533)。

  • 添加了缺少几何重叠谓词的文档 (#522)。

1.6.1 (2017-09-01)

  • 通过维护对添加的几何图形的引用,避免由于悬空引用(#505)导致STRTree崩溃。

  • 当报告对 ctypes CDLL()的调用不成功并被重试时,降低日志级别以进行调试 (#515)。

  • 澄清:像 GeoPandas 这样需要空几何对象的应用程序应该使用BaseGeometry()而不是Point()Polygon()。在主开发分支中添加了一个 EmptyGeometry类,并将在下一个非错误修复版本中提供。

1.6.0 (2017-08-21)

Shapely 1.6.0 为现有几何类添加了新属性,并将新函数(split()polylabel())添加到 shapely.ops 模块。异常被合并到 shapely.errors 模块中,并且日志记录实践得到了改进。Shapely 的依赖于 Numpy 的可选功能现在被收集到一个名为“vectorized”的需求集中,这些可以像pip install shapely[vectorized]一样安装。

1.6.0 的大部分工作旨在改进项目的构建和打包脚本,并最大限度地减少运行时依赖性。现在,Shapely 将打包打包以仅在构建期间使用,并且不再在运行时调用 geos-config 实用程序。

除了下面列出的 alpha 和 beta 预发布的更改之外,该项目还进行了以下更改:

感谢大家使用、推广和贡献 Shapely 项目。

1.6b5 (2017-08-18)

Bug修复:

  • 现在,在禁用加速的情况下将单个坐标传递给LineString()会引发 ValueError,就像启用加速时一样。这解决了#509。

1.6b4 (2017-02-15)

Bug修复:

  • 隔离 _vendor 目录中的供应商包装,删除过时的 dist-info,并从项目需求中删除包装(解决 #468)。

1.6b3 (2016-12-31)

Bug修复:

  • 源自 GEOS 通知处理程序的日志消息级别从 WARNING 降低到 INFO (#447)。

  • 允许在没有 Numpy 的情况下再次导入加速 (#444)。

1.6b2 (2016-12-12)

新的功能:

  • 添加对 GeometryCollection 到 shape 和 asShape 函数的支持 (#422)。

1.6b1 (2016-12-12)

Bug修复:

  • 为空点和线串实现了 __array_interface__ (#403)。

1.6a3 (2016-12-01)

Bug修复:

  • 删除 Numpy (#431) 的意外硬要求。

打包:

  • 将 Numpy 放入名为“vectorized”的可选需求集中(#431)。

1.6a2 (2016-11-09)

Bug修复:

  • Shapely 不再配置登录geos.py (#415)。

重构:

  • 合并shapely.errors中的异常。

  • 当 GEOS < 3.3.0 (#407) 时会引发UnsupportedGEOSVersionError 。

打包:

  • 添加了新的库搜索路径以协助 Anaconda (#413)。

  • 现在,当设置 NO_GEOS_CONFIG 环境变量时,将绕过 geos-config。这允许在不包括 geos-config 程序 (#322) 的 Linux 系统上配置 Shapely 构建。

1.6a1 (2016-09-14)

新的功能:

  • 当 GEOS 后端不支持调用的方法 (#216) 时,会引发从 NotImplementedError 派生的新错误,并提供更有用的消息。

  • LineString的project()方法已扩展到 LinearRing 几何图形 (#286)。

  • 新的minimum_rotated_rectangle属性已添加到基本几何类 (#354)。

  • 添加了一个新的shapely.ops.polylabel()函数。它计算一个适合标记凹多边形的点(#395)。

  • 添加了一个新的shapely.ops.split()函数。它通过另一个较小尺寸的几何体分割一个几何体:逐线、逐线(#293、#371)。

  • Polygon.from_bounds()从边界坐标(#392)构造一个多边形。

  • 添加了对使用 Numpy 1.4.1 进行测试的支持 (#301)。

  • 支持从 Python 对象的空列表(#397、#404)创建各种空几何。

重构:

  • 对于 GEOS >= 3.3 (#270),从SingleSidedBuffer()切换到OffsetCurve( )。

  • Cython 加速现在默认启用 (#252)。

打包:

  • 打包 16.7 是一个设置依赖项,已供应商化 (#314)。

  • 添加了用于构建 manylinux1 轮子的基础设施 (#391)。

  • 系统的geos-config程序现在只在setup.py 执行时检查,在模块的正常使用期间从不检查 (#244)。

  • 添加了新的库搜索路径以协助 PyInstaller (#382) 和 Windows (#343)。

1.5.17 (2016-08-31)

  • 错误修复:消除 geom_factory() (#408) 中的内存泄漏。

  • 错误修复:删除 parallel_offset 中负距离的提及,并注意右手偏移线的顶点是反转的 (#284)。

1.5.16 (2016-05-26)

  • 错误修复:消除几何对象时的内存泄漏(#384、#385)。

  • 错误修复:在尝试腌制准备好的几何图形时防止崩溃,改为引发PicklingError (#386)。

  • 打包:OS X 轮子中的扩展模块现在仅上传到 PyPI 链接 libgeos_c.dylib(您可以使用 otool -L shapely /vectorized/_vectorized.so验证并与以前的版本进行比较)。

1.5.15 (2016-03-29)

  • 错误修复:使用 uintptr_t 在 _geos.pxi 中存储指针而不是 long,防止溢出错误 (#372, #373)。请注意,此错误修复被错误地报告为已在 1.5.14 中进行,但事实并非如此。

1.5.14 (2016-03-27)

  • 错误修复:在评估几何相等时使用type()而不是isinstance(),防止基类和派生类的实例被误认为相等 (#317)。

  • 错误修复:确保在构造函数没有参数时创建空几何(#332,#333)。

  • 错误修复:通过不依赖 __file__属性(#342、#377)更好地支持 Windows 上的应用程序“冻结”。

  • 错误修复:确保空多边形评估为== (#355)。

  • 错误修复:在创建和加载 STRtree 时过滤掉可能导致段错误的空几何(#345、#348)。

  • 错误修复:不再尝试在 OS X 上重用已由 Rasterio 或 Fiona 加载的 GEOS DLL(#374、#375)。

1.5.13 (2015-10-09)

  • 将 GEOS 共享库的设置和运行时发现以及加载恢复到版本 1.5.9 (#326) 的状态。

  • 在 OS X 上,我们尝试重用任何可能通过导入 Fiona 或 Rasterio 加载的 GEOS 共享库,以避免涉及 GEOS AbstractSTRtree (#324, #327) 的错误。

1.5.12 (2015-08-27)

  • 从 libgeos.py (#312) 中删除根记录器的配置。

  • 在 Windows 上跳过 test_fallbacks (#308)。

  • 拆除语言环境测试时,在 Windows 上调用 setlocale(locale.LC_ALL, “”) 而不是 resetlocale() (#308)。

  • 修复 Sphinx 警告 (#309)。

  • 添加 .cache、.idea、.pyd、.pdb 到 .gitignore (#310)。

1.5.11 (2015-08-23)

  • 删除 1.5.10 (#305) 中添加的打包模块要求。Distutils 无法使用 'rc' 解析版本,但如果我们坚持使用 'a' 和 'b' 就可以了。

1.5.10 (2015-08-22)

  • 绝对引用的猴子补丁亲和性模块 (#299)。

  • 在相关()中引发 TopologicalError 而不是崩溃(#294、#295、#303)。

1.5.9 (2015-05-27)

  • 修复 64 位加速兼容性 (#274)。

1.5.8 (2015-04-29)

  • 设置文件编码错误修复 (#254)。

  • 支持 pyinstaller (#261)。

  • 为 Windows 准备的主要几何操作修复 (#268, #269)。

  • OS X 二进制轮的主要修复 (#262)。

1.5.7 (2015-03-16)

  • 测试和修复有缺陷的错误和通知处理程序 (#249)。

1.5.6 (2015-02-02)

  • 修复设置回归(#232、#234)。

  • SVG 表示改进(#233、#237)。

1.5.5 (2015-01-20)

  • MANIFEST 更改以恢复 _geox.pxi (#231)。

1.5.4 (2015-01-19)

  • 修复了 OS X 二进制轮库加载路径 (#224)。

1.5.3 (2015-01-12)

  • 修复了多边形化(#223)中的所有权和潜在的内存泄漏。

  • 为 OS X 更广泛地发布二进制轮子。

1.5.2 (2015-01-04)

  • 如果不满足 GEOS 依赖项,则安装失败,防止更新损坏(#218,#219)。

1.5.1 (2014-12-04)

  • 恢复几何散列(#209)。

1.5.0 (2014-12-02)

  • 仿射变换加速(#197)。

  • ==丰富的比较 (#195)。

  • 几何集合构造函数(#200)。

  • 由 GEOSSnap (#201) 支持的 ops.snap()。

  • 在拓扑无效的情况下更清晰的异常(#203)。

1.4.4 (2014-11-02)

  • 将 numpy float32 val 正确转换为坐标 (#186)。

1.4.3 (2014-10-01)

  • 修复 WKB 编写器中的字节顺序错误 (#174)。

1.4.2 (2014-09-29)

  • 修复失败的 1.4.1 版本 (#176)。

1.4.1 (2014-09-23)

  • 恢复对 GEOS 3.2 的支持(#176、#178)。

1.4.0 (2014-09-08)

  • IPython 的内联图像协议的 SVG 表示。

  • 高效且快速的矢量化 contains()。

  • 将 mitre_limit 默认更改为 5.0;用 0.0 (#139) 提高 ValueError。

  • 允许在加速的 LineString ctor (#152) 中混合元组和点。

  • 新的 STRtree 类 (#73)。

  • 添加 ops.nearest_points() (#147)。

  • 更快地从其他对象创建几何对象(克隆)(#165)。

  • 从包中删除测试。

1.3.3 (2014-07-23)

  • 允许单部分几何体作为 ops.cacaded_union() (#135) 的参数。

  • 支持 LinearRings (#112) 的仿射变换。

1.3.2 (2014-05-13)

  • 让 LineString() 采用一系列点 (#130)。

1.3.1 (2014-04-22)

  • 退出时更可靠的代理清理 (#106)。

  • 在所有平台上加载更强大的 DLL (#114)。

1.3.0 (2013-12-31)

  • 包括对 Python 3.2 和 3.3 (#56) 的支持,最低版本现在是 2.6。

  • 切换到 GEOS WKT/WKB 读取器/写入器 API,将默认值更改为启用 3D 输出尺寸,并为 GEOS >=3.3.0“修剪”WKT 输出。

  • 使用 GEOS 版本而不是 GEOS C API 版本来确定库功能(#65)。

1.2.19 (2013-12-30)

  • 添加缓冲样式选项(#55)。

1.2.18 (2013-07-23)

  • 添加 shapely.ops.transform。

  • 在集合构造函数中允许空序列(#49、#50)。

  • MultiPolygon.__geo_interface__ 中的单个多边形更改为元组以匹配 Polygon.__geo_interface__ (#51)。

  • 添加 shapely.ops.polygonize_full (#57)。

1.2.17 (2013-01-27)

  • 通过将对 GEOS 序列化程序的调用移至后一个模块,避免 wkt/wkb 和 geometry.base 之间的循环导入。

  • 在 unpickling 时设置 _ndim(问题 #6)。

  • 不要将 DLL 安装到 Python 的 DLL 目录 (#37)。

  • 添加仿射变换的亲和模块(#31)。

  • 修复阻止使用 PyPy 安装的 NameError(#40、#41)。

1.2.16 (2012-09-18)

  • 添加 ops.unary_union 函数。

  • 当 GEOS CAPI >= (1,7,0) 时,将 ops.cascaded_union 别名为 ops.unary_union。

  • 将 geos_version_string 属性添加到 shapely.geos。

  • 确保在访问子几何时设置了父级。

  • 在缺少、陈旧或构建目标为“sdist”时从 repo 构建时使用 Cython 生成 _speedups.c。

  • 无效的自相交线性环的 is_simple 谓词现在返回False

  • 从 repo 中删除 VERSION.txt,它现在由 distutils 设置脚本编写,值为 shapely.__version__。

1.2.15 (2012-06-27)

  • 消除方法链测试中的数值敏感性(Debian 错误 #663210)。

  • 将随机缓冲测试点的级联并集考虑为多边形或多多边形(Debian 错误 #666655)。

  • 如果安装了 Cython,请使用它来构建加速。

  • 避免在 GEOS C API 版本字符串中遇到 SVN 修订号。

1.2.14 (2012-01-23)

  • 几何图形的 coords 属性现在是可切片的,产生一个坐标值列表。

  • 同构集合现在可以切片,产生相同类型的新集合。

1.2.13 (2011-09-16)

  • 修复了 GEOS 引用超过 2GB 的内存时 32 位系统的加速错误。

  • 添加 shapely.__version__ 属性。

  • 更新手册。

1.2.12 (2011-08-15)

  • 根据需要使用 VC7 或 VC9 构建 Windows 发行版。

  • 关于加速失败的更详细的报告。

  • 修复了在 1.2.11 中损坏的准备好的几何图形。

  • 不要安装 1.2.11

1.2.11 (2011-08-04)

  • 退出期间忽略 AttributeError。

  • PyPy 1.5 支持。

  • 防止对准备好的几何破坏器(#12)进行操作。

  • 适用于 Windows 的可选 Cython 加速。

  • Linux 3 平台支持。

1.2.10 (2011-05-09)

  • 添加可选的 Cython 加速。

  • 将 is_cww 谓词添加到 LinearRing。

  • 添加强制多边形方向的功能。

  • 在 Windows 待处理的打包工作上禁用加速构建。

1.2.9 (2011-03-31)

  • 删除额外的 glob 导入。

  • 将示例移至 shapely.examples。

  • 为矩形多边形添加 box() 构造函数。

  • 修复无关的导入。

1.2.8 (2011-12-03)

  • 新的 parallel_offset 方法(#6)。

  • 支持 Python 2.4。

1.2.7 (2010-11-05)

  • 支持 Windows 鸡蛋。

1.2.6 (2010-10-21)

  • 空集合的 geoms 属性产生 [] 而