shapely 1.8.3__tar.gz → 1.8.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {Shapely-1.8.3 → Shapely-1.8.4}/CHANGES.txt +7 -0
- {Shapely-1.8.3/Shapely.egg-info → Shapely-1.8.4}/PKG-INFO +8 -1
- {Shapely-1.8.3 → Shapely-1.8.4/Shapely.egg-info}/PKG-INFO +8 -1
- Shapely-1.8.4/VERSION.txt +1 -0
- Shapely-1.8.4/shapely/__init__.py +1 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/ctypes_declarations.py +18 -40
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/geometry/base.py +3 -5
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/geometry/collection.py +1 -2
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/geometry/multilinestring.py +6 -7
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/geometry/multipoint.py +2 -3
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/geometry/multipolygon.py +4 -5
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/geometry/polygon.py +5 -7
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/ops.py +13 -29
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/strtree.py +2 -3
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/topology.py +2 -5
- Shapely-1.8.3/VERSION.txt +0 -1
- Shapely-1.8.3/shapely/__init__.py +0 -1
- {Shapely-1.8.3 → Shapely-1.8.4}/CREDITS.txt +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/LICENSE.txt +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/README.rst +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/Shapely.egg-info/SOURCES.txt +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/Shapely.egg-info/dependency_links.txt +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/Shapely.egg-info/requires.txt +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/Shapely.egg-info/top_level.txt +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/_vendor/__init__.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/_vendor/packaging/__about__.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/_vendor/packaging/__init__.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/_vendor/packaging/_compat.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/_vendor/packaging/_structures.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/_vendor/packaging/markers.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/_vendor/packaging/requirements.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/_vendor/packaging/specifiers.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/_vendor/packaging/utils.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/_vendor/packaging/version.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/docs/design.rst +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/docs/index.rst +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/docs/manual.rst +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/docs/migration.rst +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/docs/project.rst +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/pyproject.toml +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/setup.cfg +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/setup.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/_buildcfg.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/_geos.pxi +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/affinity.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/algorithms/__init__.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/algorithms/cga.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/algorithms/polylabel.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/coords.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/errors.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/examples/__init__.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/examples/dissolve.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/examples/geoms.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/examples/intersect.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/geometry/__init__.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/geometry/conftest.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/geometry/geo.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/geometry/linestring.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/geometry/point.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/geometry/proxy.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/geos.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/impl.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/iterops.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/linref.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/predicates.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/prepared.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/speedups/__init__.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/speedups/_speedups.pyx +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/validation.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/vectorized/__init__.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/vectorized/_vectorized.pyx +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/wkb.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/shapely/wkt.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/__init__.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/conftest.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_affinity.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_binascii_hex.txt +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_box.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_buffer.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_cga.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_clip_by_rect.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_collection.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_coords.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_create_inconsistent_dimensionality.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_default_impl.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_delaunay.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_delegated.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_dlls.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_doctests.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_emptiness.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_empty_polygons.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_equality.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_geointerface.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_geometry_base.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_geomseq.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_geos_err_handler.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_getitem.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_hash.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_invalid_geometries.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_iterops.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_linear_referencing.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_linemerge.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_linestring.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_locale.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_make_valid.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_mapping.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_minimum_clearance.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_minimum_rotated_rectangle.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_multi.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_multilinestring.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_multipoint.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_multipolygon.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_ndarrays.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_nearest.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_operations.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_operators.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_orient.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_parallel_offset.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_persist.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_pickle.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_point.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_polygon.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_polygonize.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_polylabel.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_predicates.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_prepared.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_products_z.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_shape.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_shared_paths.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_singularity.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_snap.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_split.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_strtree.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_styles.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_substring.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_svg.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_transform.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_union.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_validation.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_vectorized.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_voronoi_diagram.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_wkb.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_wkt.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/test_xy.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/threading_test.py +0 -0
- {Shapely-1.8.3 → Shapely-1.8.4}/tests/unpickle-strtree.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: Shapely
|
|
3
|
-
Version: 1.8.
|
|
3
|
+
Version: 1.8.4
|
|
4
4
|
Summary: Geometric objects, predicates, and operations
|
|
5
5
|
Home-page: https://github.com/shapely/shapely
|
|
6
6
|
Author: Sean Gillies
|
|
@@ -331,6 +331,13 @@ U.S. National Endowment for the Humanities (https://www.neh.gov).
|
|
|
331
331
|
Changes
|
|
332
332
|
=======
|
|
333
333
|
|
|
334
|
+
1.8.4 (2022-08-17)
|
|
335
|
+
------------------
|
|
336
|
+
|
|
337
|
+
Bug fixes:
|
|
338
|
+
|
|
339
|
+
- The new c_geom_p type caused a regression and has been removed (#1487).
|
|
340
|
+
|
|
334
341
|
1.8.3 (2022-08-16)
|
|
335
342
|
------------------
|
|
336
343
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: Shapely
|
|
3
|
-
Version: 1.8.
|
|
3
|
+
Version: 1.8.4
|
|
4
4
|
Summary: Geometric objects, predicates, and operations
|
|
5
5
|
Home-page: https://github.com/shapely/shapely
|
|
6
6
|
Author: Sean Gillies
|
|
@@ -331,6 +331,13 @@ U.S. National Endowment for the Humanities (https://www.neh.gov).
|
|
|
331
331
|
Changes
|
|
332
332
|
=======
|
|
333
333
|
|
|
334
|
+
1.8.4 (2022-08-17)
|
|
335
|
+
------------------
|
|
336
|
+
|
|
337
|
+
Bug fixes:
|
|
338
|
+
|
|
339
|
+
- The new c_geom_p type caused a regression and has been removed (#1487).
|
|
340
|
+
|
|
334
341
|
1.8.3 (2022-08-16)
|
|
335
342
|
------------------
|
|
336
343
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.8.4
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1.8.4"
|
|
@@ -3,19 +3,8 @@
|
|
|
3
3
|
See header file: geos-x.y.z/capi/geos_c.h
|
|
4
4
|
'''
|
|
5
5
|
|
|
6
|
-
from ctypes import
|
|
7
|
-
|
|
8
|
-
POINTER,
|
|
9
|
-
Structure,
|
|
10
|
-
c_void_p,
|
|
11
|
-
c_char_p,
|
|
12
|
-
c_size_t,
|
|
13
|
-
c_byte,
|
|
14
|
-
c_uint,
|
|
15
|
-
c_int,
|
|
16
|
-
c_double,
|
|
17
|
-
py_object,
|
|
18
|
-
)
|
|
6
|
+
from ctypes import CFUNCTYPE, POINTER, c_void_p, c_char_p, \
|
|
7
|
+
c_size_t, c_byte, c_uint, c_int, c_double, py_object
|
|
19
8
|
|
|
20
9
|
from .errors import UnsupportedGEOSVersionError
|
|
21
10
|
|
|
@@ -31,13 +20,6 @@ class allocated_c_char_p(c_char_p):
|
|
|
31
20
|
pass
|
|
32
21
|
|
|
33
22
|
|
|
34
|
-
class GEOSGeom_t(Structure):
|
|
35
|
-
pass
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
c_geom_p = POINTER(GEOSGeom_t)
|
|
39
|
-
|
|
40
|
-
|
|
41
23
|
def prototype(lgeos, geos_version):
|
|
42
24
|
"""Protype functions in geos_c.h for different version of GEOS
|
|
43
25
|
|
|
@@ -173,25 +155,25 @@ def prototype(lgeos, geos_version):
|
|
|
173
155
|
|
|
174
156
|
# Geometry constructors
|
|
175
157
|
|
|
176
|
-
lgeos.GEOSGeom_createPoint.restype =
|
|
158
|
+
lgeos.GEOSGeom_createPoint.restype = c_void_p
|
|
177
159
|
lgeos.GEOSGeom_createPoint.argtypes = [c_void_p]
|
|
178
160
|
|
|
179
|
-
lgeos.GEOSGeom_createLinearRing.restype =
|
|
161
|
+
lgeos.GEOSGeom_createLinearRing.restype = c_void_p
|
|
180
162
|
lgeos.GEOSGeom_createLinearRing.argtypes = [c_void_p]
|
|
181
163
|
|
|
182
|
-
lgeos.GEOSGeom_createLineString.restype =
|
|
164
|
+
lgeos.GEOSGeom_createLineString.restype = c_void_p
|
|
183
165
|
lgeos.GEOSGeom_createLineString.argtypes = [c_void_p]
|
|
184
166
|
|
|
185
|
-
lgeos.GEOSGeom_createPolygon.restype =
|
|
186
|
-
lgeos.GEOSGeom_createPolygon.argtypes = [
|
|
167
|
+
lgeos.GEOSGeom_createPolygon.restype = c_void_p
|
|
168
|
+
lgeos.GEOSGeom_createPolygon.argtypes = [c_void_p, c_void_p, c_uint]
|
|
187
169
|
|
|
188
|
-
lgeos.GEOSGeom_createCollection.restype =
|
|
189
|
-
lgeos.GEOSGeom_createCollection.argtypes = [c_int,
|
|
170
|
+
lgeos.GEOSGeom_createCollection.restype = c_void_p
|
|
171
|
+
lgeos.GEOSGeom_createCollection.argtypes = [c_int, c_void_p, c_uint]
|
|
190
172
|
|
|
191
|
-
lgeos.GEOSGeom_createEmptyCollection.restype =
|
|
173
|
+
lgeos.GEOSGeom_createEmptyCollection.restype = c_void_p
|
|
192
174
|
lgeos.GEOSGeom_createEmptyCollection.argtypes = [c_int]
|
|
193
175
|
|
|
194
|
-
lgeos.GEOSGeom_clone.restype =
|
|
176
|
+
lgeos.GEOSGeom_clone.restype = c_void_p
|
|
195
177
|
lgeos.GEOSGeom_clone.argtypes = [c_void_p]
|
|
196
178
|
|
|
197
179
|
# Memory management
|
|
@@ -243,13 +225,9 @@ def prototype(lgeos, geos_version):
|
|
|
243
225
|
lgeos.GEOSPolygonize.restype = c_void_p
|
|
244
226
|
lgeos.GEOSPolygonize.argtypes = [c_void_p, c_uint]
|
|
245
227
|
|
|
246
|
-
lgeos.GEOSPolygonize_full.restype =
|
|
228
|
+
lgeos.GEOSPolygonize_full.restype = c_void_p
|
|
247
229
|
lgeos.GEOSPolygonize_full.argtypes = [
|
|
248
|
-
|
|
249
|
-
POINTER(c_geom_p),
|
|
250
|
-
POINTER(c_geom_p),
|
|
251
|
-
POINTER(c_geom_p),
|
|
252
|
-
]
|
|
230
|
+
c_void_p, c_void_p, c_void_p, c_void_p]
|
|
253
231
|
|
|
254
232
|
if geos_version >= (3, 4, 0):
|
|
255
233
|
lgeos.GEOSDelaunayTriangulation.restype = c_void_p
|
|
@@ -419,16 +397,16 @@ def prototype(lgeos, geos_version):
|
|
|
419
397
|
# Misc functions
|
|
420
398
|
|
|
421
399
|
lgeos.GEOSArea.restype = c_int
|
|
422
|
-
lgeos.GEOSArea.argtypes = [
|
|
400
|
+
lgeos.GEOSArea.argtypes = [c_void_p, POINTER(c_double)]
|
|
423
401
|
|
|
424
402
|
lgeos.GEOSLength.restype = c_int
|
|
425
|
-
lgeos.GEOSLength.argtypes = [
|
|
403
|
+
lgeos.GEOSLength.argtypes = [c_void_p, POINTER(c_double)]
|
|
426
404
|
|
|
427
405
|
lgeos.GEOSDistance.restype = c_int
|
|
428
|
-
lgeos.GEOSDistance.argtypes = [
|
|
406
|
+
lgeos.GEOSDistance.argtypes = [c_void_p, c_void_p, POINTER(c_double)]
|
|
429
407
|
|
|
430
408
|
lgeos.GEOSHausdorffDistance.restype = c_int
|
|
431
|
-
lgeos.GEOSHausdorffDistance.argtypes = [
|
|
409
|
+
lgeos.GEOSHausdorffDistance.argtypes = [c_void_p, c_void_p, POINTER(c_double)]
|
|
432
410
|
|
|
433
411
|
# Reader and Writer APIs
|
|
434
412
|
|
|
@@ -546,7 +524,7 @@ def prototype(lgeos, geos_version):
|
|
|
546
524
|
c_void_p, py_object, c_void_p, lgeos.GEOSDistanceCallback, py_object]
|
|
547
525
|
lgeos.GEOSSTRtree_nearest_generic.restype = c_void_p
|
|
548
526
|
|
|
549
|
-
lgeos.GEOSMinimumClearance.argtypes = [
|
|
527
|
+
lgeos.GEOSMinimumClearance.argtypes = [c_void_p, POINTER(c_double)]
|
|
550
528
|
lgeos.GEOSMinimumClearance.restype = c_int
|
|
551
529
|
|
|
552
530
|
if geos_version >= (3, 8, 0):
|
|
@@ -7,7 +7,7 @@ different z values may intersect or be equal.
|
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
9
|
from binascii import a2b_hex
|
|
10
|
-
from ctypes import
|
|
10
|
+
from ctypes import pointer, c_size_t, c_char_p, c_void_p
|
|
11
11
|
from itertools import islice
|
|
12
12
|
import logging
|
|
13
13
|
import math
|
|
@@ -18,7 +18,6 @@ import warnings
|
|
|
18
18
|
|
|
19
19
|
from shapely.affinity import affine_transform
|
|
20
20
|
from shapely.coords import CoordinateSequence
|
|
21
|
-
from shapely.ctypes_declarations import c_geom_p
|
|
22
21
|
from shapely.errors import GeometryTypeError, WKBReadingError, WKTReadingError
|
|
23
22
|
from shapely.errors import ShapelyDeprecationWarning
|
|
24
23
|
from shapely.geos import WKBWriter, WKTWriter
|
|
@@ -108,11 +107,10 @@ def geos_geom_from_py(ob, create_func=None):
|
|
|
108
107
|
This behaviour is useful for converting between LineString and LinearRing
|
|
109
108
|
objects.
|
|
110
109
|
"""
|
|
111
|
-
geom_ptr = cast(ob._geom, c_geom_p)
|
|
112
110
|
if create_func is None:
|
|
113
|
-
geom = lgeos.GEOSGeom_clone(
|
|
111
|
+
geom = lgeos.GEOSGeom_clone(ob._geom)
|
|
114
112
|
else:
|
|
115
|
-
cs = lgeos.GEOSGeom_getCoordSeq(
|
|
113
|
+
cs = lgeos.GEOSGeom_getCoordSeq(ob._geom)
|
|
116
114
|
cs = lgeos.GEOSCoordSeq_clone(cs)
|
|
117
115
|
geom = create_func(cs)
|
|
118
116
|
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
|
|
4
4
|
from ctypes import c_void_p
|
|
5
5
|
|
|
6
|
-
from shapely.ctypes_declarations import c_geom_p
|
|
7
6
|
from shapely.geos import lgeos
|
|
8
7
|
from shapely.geometry.base import BaseGeometry
|
|
9
8
|
from shapely.geometry.base import BaseMultipartGeometry
|
|
@@ -64,7 +63,7 @@ def geos_geometrycollection_from_py(ob):
|
|
|
64
63
|
ob = ob.geoms
|
|
65
64
|
L = len(ob)
|
|
66
65
|
N = 2
|
|
67
|
-
subs = (
|
|
66
|
+
subs = (c_void_p * L)()
|
|
68
67
|
for l in range(L):
|
|
69
68
|
assert(isinstance(ob[l], BaseGeometry))
|
|
70
69
|
if ob[l].has_z:
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
from ctypes import c_void_p, cast
|
|
5
5
|
import warnings
|
|
6
6
|
|
|
7
|
-
from shapely.ctypes_declarations import c_geom_p
|
|
8
7
|
from shapely.errors import EmptyPartError, ShapelyDeprecationWarning
|
|
9
8
|
from shapely.geos import lgeos
|
|
10
9
|
from shapely.geometry.base import BaseMultipartGeometry, geos_geom_from_py
|
|
@@ -117,9 +116,9 @@ def asMultiLineString(context):
|
|
|
117
116
|
|
|
118
117
|
|
|
119
118
|
def geos_multilinestring_from_py(ob):
|
|
120
|
-
# ob must be either a MultiLineString, a sequence, or
|
|
119
|
+
# ob must be either a MultiLineString, a sequence, or
|
|
121
120
|
# array of sequences or arrays
|
|
122
|
-
|
|
121
|
+
|
|
123
122
|
if isinstance(ob, MultiLineString):
|
|
124
123
|
return geos_geom_from_py(ob)
|
|
125
124
|
|
|
@@ -135,8 +134,8 @@ def geos_multilinestring_from_py(ob):
|
|
|
135
134
|
raise ValueError("Invalid coordinate dimensionality")
|
|
136
135
|
|
|
137
136
|
# Array of pointers to point geometries
|
|
138
|
-
subs = (
|
|
139
|
-
|
|
137
|
+
subs = (c_void_p * L)()
|
|
138
|
+
|
|
140
139
|
# add to coordinate sequence
|
|
141
140
|
for l in range(L):
|
|
142
141
|
geom, ndims = linestring.geos_linestring_from_py(obs[l])
|
|
@@ -144,6 +143,6 @@ def geos_multilinestring_from_py(ob):
|
|
|
144
143
|
if lgeos.GEOSisEmpty(geom):
|
|
145
144
|
raise EmptyPartError("Can't create MultiLineString with empty component")
|
|
146
145
|
|
|
147
|
-
subs[l] = cast(geom,
|
|
148
|
-
|
|
146
|
+
subs[l] = cast(geom, c_void_p)
|
|
147
|
+
|
|
149
148
|
return (lgeos.GEOSGeom_createCollection(5, subs, L), N)
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
from ctypes import byref, c_double, c_void_p, cast
|
|
5
5
|
import warnings
|
|
6
6
|
|
|
7
|
-
from shapely.ctypes_declarations import c_geom_p
|
|
8
7
|
from shapely.errors import EmptyPartError, ShapelyDeprecationWarning
|
|
9
8
|
from shapely.geos import lgeos
|
|
10
9
|
from shapely.geometry.base import (
|
|
@@ -195,7 +194,7 @@ def geos_multipoint_from_py(ob):
|
|
|
195
194
|
assert n == 2 or n == 3
|
|
196
195
|
|
|
197
196
|
# Array of pointers to point geometries
|
|
198
|
-
subs = (
|
|
197
|
+
subs = (c_void_p * m)()
|
|
199
198
|
|
|
200
199
|
# add to coordinate sequence
|
|
201
200
|
for i in range(m):
|
|
@@ -205,6 +204,6 @@ def geos_multipoint_from_py(ob):
|
|
|
205
204
|
if lgeos.GEOSisEmpty(geom):
|
|
206
205
|
raise EmptyPartError("Can't create MultiPoint with empty component")
|
|
207
206
|
|
|
208
|
-
subs[i] = cast(geom,
|
|
207
|
+
subs[i] = cast(geom, c_void_p)
|
|
209
208
|
|
|
210
209
|
return lgeos.GEOSGeom_createCollection(4, subs, m), n
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
from ctypes import c_void_p, cast
|
|
5
5
|
import warnings
|
|
6
6
|
|
|
7
|
-
from shapely.ctypes_declarations import c_geom_p
|
|
8
7
|
from shapely.errors import ShapelyDeprecationWarning
|
|
9
8
|
from shapely.geos import lgeos
|
|
10
9
|
from shapely.geometry.base import BaseMultipartGeometry, geos_geom_from_py
|
|
@@ -147,10 +146,10 @@ def geos_multipolygon_from_py(ob):
|
|
|
147
146
|
N = len(ob[0][0][0])
|
|
148
147
|
assert N == 2 or N == 3
|
|
149
148
|
|
|
150
|
-
subs = (
|
|
149
|
+
subs = (c_void_p * L)()
|
|
151
150
|
for l in range(L):
|
|
152
151
|
geom, ndims = polygon.geos_polygon_from_py(ob[l][0], ob[l][1:])
|
|
153
|
-
subs[l] = cast(geom,
|
|
152
|
+
subs[l] = cast(geom, c_void_p)
|
|
154
153
|
|
|
155
154
|
return (lgeos.GEOSGeom_createCollection(6, subs, L), N)
|
|
156
155
|
|
|
@@ -193,7 +192,7 @@ def geos_multipolygon_from_polygons(arg):
|
|
|
193
192
|
|
|
194
193
|
assert N == 2 or N == 3
|
|
195
194
|
|
|
196
|
-
subs = (
|
|
195
|
+
subs = (c_void_p * L)()
|
|
197
196
|
|
|
198
197
|
for i, ob in enumerate(obs):
|
|
199
198
|
if isinstance(ob, polygon.Polygon):
|
|
@@ -204,6 +203,6 @@ def geos_multipolygon_from_polygons(arg):
|
|
|
204
203
|
holes = ob[1]
|
|
205
204
|
|
|
206
205
|
geom, ndims = polygon.geos_polygon_from_py(shell, holes)
|
|
207
|
-
subs[i] = cast(geom,
|
|
206
|
+
subs[i] = cast(geom, c_void_p)
|
|
208
207
|
|
|
209
208
|
return (lgeos.GEOSGeom_createCollection(6, subs, L), N)
|
|
@@ -9,7 +9,6 @@ import weakref
|
|
|
9
9
|
|
|
10
10
|
from shapely.algorithms.cga import signed_area
|
|
11
11
|
from shapely.coords import CoordinateSequence
|
|
12
|
-
from shapely.ctypes_declarations import c_geom_p
|
|
13
12
|
from shapely.geos import lgeos
|
|
14
13
|
from shapely.geometry.base import BaseGeometry, geos_geom_from_py
|
|
15
14
|
from shapely.geometry.linestring import LineString, LineStringAdapter
|
|
@@ -556,17 +555,16 @@ def geos_polygon_from_py(shell, holes=None):
|
|
|
556
555
|
raise ValueError("insufficiant coordinate dimension")
|
|
557
556
|
|
|
558
557
|
# Array of pointers to ring geometries
|
|
559
|
-
geos_holes = (
|
|
558
|
+
geos_holes = (c_void_p * L)()
|
|
560
559
|
|
|
561
560
|
# add to coordinate sequence
|
|
562
561
|
for l in range(L):
|
|
563
562
|
geom, ndim = geos_linearring_from_py(ob[l])
|
|
564
|
-
geos_holes[l] = cast(geom,
|
|
563
|
+
geos_holes[l] = cast(geom, c_void_p)
|
|
565
564
|
else:
|
|
566
|
-
geos_holes = POINTER(
|
|
565
|
+
geos_holes = POINTER(c_void_p)()
|
|
567
566
|
L = 0
|
|
568
567
|
|
|
569
568
|
return (
|
|
570
|
-
lgeos.GEOSGeom_createPolygon(
|
|
571
|
-
|
|
572
|
-
)
|
|
569
|
+
lgeos.GEOSGeom_createPolygon(
|
|
570
|
+
c_void_p(geos_shell), geos_holes, L), ndim)
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
"""Support for various GEOS geometry operations
|
|
2
2
|
"""
|
|
3
3
|
|
|
4
|
-
from ctypes import byref,
|
|
4
|
+
from ctypes import byref, c_void_p, c_double
|
|
5
5
|
from warnings import warn
|
|
6
6
|
|
|
7
|
-
from shapely.ctypes_declarations import c_geom_p
|
|
8
7
|
from shapely.errors import GeometryTypeError, ShapelyDeprecationWarning
|
|
9
8
|
from shapely.prepared import prep
|
|
10
9
|
from shapely.geos import lgeos
|
|
@@ -45,16 +44,12 @@ class CollectionOperator:
|
|
|
45
44
|
source = [source]
|
|
46
45
|
finally:
|
|
47
46
|
obs = [self.shapeup(l) for l in source]
|
|
48
|
-
|
|
49
|
-
geom_array_type = c_geom_p * len(obs)
|
|
47
|
+
geom_array_type = c_void_p * len(obs)
|
|
50
48
|
geom_array = geom_array_type()
|
|
51
|
-
|
|
52
49
|
for i, line in enumerate(obs):
|
|
53
|
-
geom_array[i] =
|
|
54
|
-
|
|
50
|
+
geom_array[i] = line._geom
|
|
55
51
|
product = lgeos.GEOSPolygonize(byref(geom_array), len(obs))
|
|
56
52
|
collection = geom_factory(product)
|
|
57
|
-
|
|
58
53
|
for g in collection.geoms:
|
|
59
54
|
clone = lgeos.GEOSGeom_clone(g._geom)
|
|
60
55
|
g = geom_factory(clone)
|
|
@@ -83,21 +78,16 @@ class CollectionOperator:
|
|
|
83
78
|
source = [source]
|
|
84
79
|
finally:
|
|
85
80
|
obs = [self.shapeup(l) for l in source]
|
|
86
|
-
|
|
87
81
|
L = len(obs)
|
|
88
|
-
subs = (
|
|
89
|
-
|
|
82
|
+
subs = (c_void_p * L)()
|
|
90
83
|
for i, g in enumerate(obs):
|
|
91
|
-
subs[i] =
|
|
92
|
-
|
|
84
|
+
subs[i] = g._geom
|
|
93
85
|
collection = lgeos.GEOSGeom_createCollection(5, subs, L)
|
|
94
|
-
dangles =
|
|
95
|
-
cuts =
|
|
96
|
-
invalids =
|
|
86
|
+
dangles = c_void_p()
|
|
87
|
+
cuts = c_void_p()
|
|
88
|
+
invalids = c_void_p()
|
|
97
89
|
product = lgeos.GEOSPolygonize_full(
|
|
98
|
-
collection, byref(dangles), byref(cuts), byref(invalids)
|
|
99
|
-
)
|
|
100
|
-
|
|
90
|
+
collection, byref(dangles), byref(cuts), byref(invalids))
|
|
101
91
|
return (
|
|
102
92
|
geom_factory(product),
|
|
103
93
|
geom_factory(dangles),
|
|
@@ -145,12 +135,9 @@ class CollectionOperator:
|
|
|
145
135
|
except TypeError:
|
|
146
136
|
geoms = [geoms]
|
|
147
137
|
L = 1
|
|
148
|
-
|
|
149
|
-
subs = (c_geom_p * L)()
|
|
150
|
-
|
|
138
|
+
subs = (c_void_p * L)()
|
|
151
139
|
for i, g in enumerate(geoms):
|
|
152
|
-
subs[i] =
|
|
153
|
-
|
|
140
|
+
subs[i] = g._geom
|
|
154
141
|
collection = lgeos.GEOSGeom_createCollection(6, subs, L)
|
|
155
142
|
return geom_factory(lgeos.methods['cascaded_union'](collection))
|
|
156
143
|
|
|
@@ -167,12 +154,9 @@ class CollectionOperator:
|
|
|
167
154
|
except TypeError:
|
|
168
155
|
geoms = [geoms]
|
|
169
156
|
L = 1
|
|
170
|
-
|
|
171
|
-
subs = (c_geom_p * L)()
|
|
172
|
-
|
|
157
|
+
subs = (c_void_p * L)()
|
|
173
158
|
for i, g in enumerate(geoms):
|
|
174
|
-
subs[i] =
|
|
175
|
-
|
|
159
|
+
subs[i] = g._geom
|
|
176
160
|
collection = lgeos.GEOSGeom_createCollection(6, subs, L)
|
|
177
161
|
return geom_factory(lgeos.methods['unary_union'](collection))
|
|
178
162
|
|
|
@@ -24,7 +24,6 @@ from typing import Any, ItemsView, Iterable, Iterator, Optional, Sequence, Tuple
|
|
|
24
24
|
import sys
|
|
25
25
|
from warnings import warn
|
|
26
26
|
|
|
27
|
-
from shapely.ctypes_declarations import c_geom_p
|
|
28
27
|
from shapely.errors import ShapelyDeprecationWarning
|
|
29
28
|
from shapely.geometry.base import BaseGeometry
|
|
30
29
|
from shapely.geos import lgeos
|
|
@@ -264,8 +263,8 @@ class STRtree:
|
|
|
264
263
|
dist[0] = sys.float_info.max
|
|
265
264
|
else:
|
|
266
265
|
lgeos.GEOSDistance(
|
|
267
|
-
|
|
268
|
-
|
|
266
|
+
self._geoms[idx]._geom,
|
|
267
|
+
geom2._geom,
|
|
269
268
|
dist,
|
|
270
269
|
)
|
|
271
270
|
return 1
|
|
@@ -9,7 +9,6 @@ These methods return ctypes objects that should be recast by the caller.
|
|
|
9
9
|
|
|
10
10
|
from ctypes import byref, cast, c_double
|
|
11
11
|
|
|
12
|
-
from shapely.ctypes_declarations import c_geom_p
|
|
13
12
|
from shapely.geos import TopologicalError, lgeos
|
|
14
13
|
from shapely.errors import InvalidGeometryError
|
|
15
14
|
|
|
@@ -49,9 +48,7 @@ class BinaryRealProperty(Delegating):
|
|
|
49
48
|
self._validate(this)
|
|
50
49
|
self._validate(other, stop_prepared=True)
|
|
51
50
|
d = c_double()
|
|
52
|
-
retval = self.fn(
|
|
53
|
-
cast(this._geom, c_geom_p), cast(other._geom, c_geom_p), byref(d)
|
|
54
|
-
)
|
|
51
|
+
retval = self.fn(this._geom, other._geom, byref(d))
|
|
55
52
|
return d.value
|
|
56
53
|
|
|
57
54
|
|
|
@@ -60,7 +57,7 @@ class UnaryRealProperty(Delegating):
|
|
|
60
57
|
def __call__(self, this):
|
|
61
58
|
self._validate(this)
|
|
62
59
|
d = c_double()
|
|
63
|
-
retval = self.fn(
|
|
60
|
+
retval = self.fn(this._geom, byref(d))
|
|
64
61
|
return d.value
|
|
65
62
|
|
|
66
63
|
|
Shapely-1.8.3/VERSION.txt
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
1.8.3
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "1.8.3"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|