shapely 1.0.12__tar.gz → 1.0.14__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.
Files changed (65) hide show
  1. {Shapely-1.0.12 → Shapely-1.0.14}/CHANGES.txt +10 -0
  2. {Shapely-1.0.12 → Shapely-1.0.14}/CREDITS.txt +2 -2
  3. Shapely-1.0.14/MANIFEST.in +2 -0
  4. {Shapely-1.0.12 → Shapely-1.0.14}/PKG-INFO +7 -14
  5. {Shapely-1.0.12 → Shapely-1.0.14}/README.txt +6 -13
  6. {Shapely-1.0.12 → Shapely-1.0.14}/Shapely.egg-info/PKG-INFO +7 -14
  7. {Shapely-1.0.12 → Shapely-1.0.14}/Shapely.egg-info/SOURCES.txt +2 -1
  8. Shapely-1.0.14/Shapely.egg-info/requires.txt +2 -0
  9. {Shapely-1.0.12 → Shapely-1.0.14}/setup.py +1 -1
  10. {Shapely-1.0.12 → Shapely-1.0.14}/setup_windows.py +1 -1
  11. Shapely-1.0.14/shapely/ctypes_declarations.py +212 -0
  12. {Shapely-1.0.12 → Shapely-1.0.14}/shapely/geometry/base.py +4 -3
  13. {Shapely-1.0.12 → Shapely-1.0.14}/shapely/geos.py +12 -6
  14. {Shapely-1.0.12 → Shapely-1.0.14}/shapely/wkb.py +4 -2
  15. {Shapely-1.0.12 → Shapely-1.0.14}/tests/wkt_locale.txt +5 -3
  16. Shapely-1.0.12/Shapely.egg-info/requires.txt +0 -1
  17. Shapely-1.0.12/shapely/ctypes_declarations.py +0 -204
  18. {Shapely-1.0.12 → Shapely-1.0.14}/GEOS-C-API.txt +0 -0
  19. {Shapely-1.0.12 → Shapely-1.0.14}/HISTORY.txt +0 -0
  20. {Shapely-1.0.12 → Shapely-1.0.14}/LICENSE.txt +0 -0
  21. {Shapely-1.0.12 → Shapely-1.0.14}/Shapely.egg-info/dependency_links.txt +0 -0
  22. {Shapely-1.0.12 → Shapely-1.0.14}/Shapely.egg-info/top_level.txt +0 -0
  23. {Shapely-1.0.12 → Shapely-1.0.14}/examples/geoms.py +0 -0
  24. {Shapely-1.0.12 → Shapely-1.0.14}/examples/world.py +0 -0
  25. {Shapely-1.0.12 → Shapely-1.0.14}/manual/manual.txt +0 -0
  26. {Shapely-1.0.12 → Shapely-1.0.14}/manual/style.css +0 -0
  27. {Shapely-1.0.12 → Shapely-1.0.14}/setup.cfg +0 -0
  28. {Shapely-1.0.12 → Shapely-1.0.14}/shapely/__init__.py +0 -0
  29. {Shapely-1.0.12 → Shapely-1.0.14}/shapely/geometry/__init__.py +0 -0
  30. {Shapely-1.0.12 → Shapely-1.0.14}/shapely/geometry/collection.py +0 -0
  31. {Shapely-1.0.12 → Shapely-1.0.14}/shapely/geometry/geo.py +0 -0
  32. {Shapely-1.0.12 → Shapely-1.0.14}/shapely/geometry/linestring.py +0 -0
  33. {Shapely-1.0.12 → Shapely-1.0.14}/shapely/geometry/multilinestring.py +0 -0
  34. {Shapely-1.0.12 → Shapely-1.0.14}/shapely/geometry/multipoint.py +0 -0
  35. {Shapely-1.0.12 → Shapely-1.0.14}/shapely/geometry/multipolygon.py +0 -0
  36. {Shapely-1.0.12 → Shapely-1.0.14}/shapely/geometry/point.py +0 -0
  37. {Shapely-1.0.12 → Shapely-1.0.14}/shapely/geometry/polygon.py +0 -0
  38. {Shapely-1.0.12 → Shapely-1.0.14}/shapely/geometry/proxy.py +0 -0
  39. {Shapely-1.0.12 → Shapely-1.0.14}/shapely/iterops.py +0 -0
  40. {Shapely-1.0.12 → Shapely-1.0.14}/shapely/ops.py +0 -0
  41. {Shapely-1.0.12 → Shapely-1.0.14}/shapely/predicates.py +0 -0
  42. {Shapely-1.0.12 → Shapely-1.0.14}/shapely/topology.py +0 -0
  43. {Shapely-1.0.12 → Shapely-1.0.14}/shapely/wkt.py +0 -0
  44. {Shapely-1.0.12 → Shapely-1.0.14}/tests/Array.txt +0 -0
  45. {Shapely-1.0.12 → Shapely-1.0.14}/tests/GeoInterface.txt +0 -0
  46. {Shapely-1.0.12 → Shapely-1.0.14}/tests/IterOps.txt +0 -0
  47. {Shapely-1.0.12 → Shapely-1.0.14}/tests/LineString.txt +0 -0
  48. {Shapely-1.0.12 → Shapely-1.0.14}/tests/MultiLineString.txt +0 -0
  49. {Shapely-1.0.12 → Shapely-1.0.14}/tests/MultiPoint.txt +0 -0
  50. {Shapely-1.0.12 → Shapely-1.0.14}/tests/MultiPolygon.txt +0 -0
  51. {Shapely-1.0.12 → Shapely-1.0.14}/tests/Operations.txt +0 -0
  52. {Shapely-1.0.12 → Shapely-1.0.14}/tests/Persist.txt +0 -0
  53. {Shapely-1.0.12 → Shapely-1.0.14}/tests/Point.txt +0 -0
  54. {Shapely-1.0.12 → Shapely-1.0.14}/tests/Polygon.txt +0 -0
  55. {Shapely-1.0.12 → Shapely-1.0.14}/tests/Predicates.txt +0 -0
  56. {Shapely-1.0.12 → Shapely-1.0.14}/tests/__init__.py +0 -0
  57. {Shapely-1.0.12 → Shapely-1.0.14}/tests/attribute-chains.txt +0 -0
  58. {Shapely-1.0.12 → Shapely-1.0.14}/tests/binascii_hex.txt +0 -0
  59. {Shapely-1.0.12 → Shapely-1.0.14}/tests/dimensions.txt +0 -0
  60. {Shapely-1.0.12 → Shapely-1.0.14}/tests/invalid_intersection.txt +0 -0
  61. {Shapely-1.0.12 → Shapely-1.0.14}/tests/polygonize.txt +0 -0
  62. {Shapely-1.0.12 → Shapely-1.0.14}/tests/rungrind.dist +0 -0
  63. {Shapely-1.0.12 → Shapely-1.0.14}/tests/test_doctests.py +0 -0
  64. {Shapely-1.0.12 → Shapely-1.0.14}/tests/test_threads.py +0 -0
  65. {Shapely-1.0.12 → Shapely-1.0.14}/tests/valgrind-python.supp +0 -0
@@ -1,5 +1,15 @@
1
1
  All tickets are children of http://trac.gispython.org/lab/ticket.
2
2
 
3
+ 1.0.14 (2009-10-05)
4
+ -------------------
5
+ - Proper prototyping of WKB writer, and avoidance of errors on 64-bit systems
6
+ (#191).
7
+
8
+ 1.0.13 (2009-09-29)
9
+ -------------------
10
+ - Prototype libgeos_c functions in a way that lets py2exe apps import shapely
11
+ (#189).
12
+
3
13
  1.0.12 (2009-04-09)
4
14
  -------------------
5
15
  - Fix for references held by topology and predicate descriptors.
@@ -5,5 +5,5 @@ Frédéric Junod (Camptocamp SA)
5
5
  Eric Lemoine (Camptocamp SA)
6
6
  Justin Bronn (GeoDjango) for ctypes inspiration
7
7
 
8
- Some of this work was supported by a grant from the U.S. National Endowment for
9
- the Humanities (http://www.neh.gov).
8
+ Some of this work was supported by a grant from the U.S. National Endowment
9
+ for the Humanities (http://www.neh.gov).
@@ -0,0 +1,2 @@
1
+ include *.txt
2
+ recursive-include examples *.py
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.0
2
2
  Name: Shapely
3
- Version: 1.0.12
3
+ Version: 1.0.14
4
4
  Summary: Geospatial geometries, predicates, and operations
5
5
  Home-page: http://trac.gispython.org/lab/wiki/Shapely
6
6
  Author: Sean Gillies
@@ -19,7 +19,7 @@ Description: Shapely
19
19
  * Shapely manual_
20
20
 
21
21
  Shapely requires Python 2.4+. (I've also begun to port it to Python 3.0:
22
- http://zcologia.com/news/564/shapely-for-python-3-0/.)
22
+ http://sgillies.net/blog/564/shapely-for-python-3-0/.)
23
23
 
24
24
  .. note::
25
25
  We've switched to Windows GEOS DLLs based on MinGW in versions >= 1.0.6.
@@ -27,8 +27,8 @@ Description: Shapely
27
27
 
28
28
  See also CHANGES.txt_ and HISTORY.txt_.
29
29
 
30
- .. _CHANGES.txt: http://trac.gispython.org/projects/PCL/browser/Shapely/trunk/CHANGES.txt
31
- .. _HISTORY.txt: http://trac.gispython.org/projects/PCL/browser/Shapely/trunk/HISTORY.txt
30
+ .. _CHANGES.txt: http://trac.gispython.org/lab/browser/Shapely/trunk/CHANGES.txt
31
+ .. _HISTORY.txt: http://trac.gispython.org/lab/browser/Shapely/trunk/HISTORY.txt
32
32
  .. _WorldMill: http://pypi.python.org/pypi/WorldMill
33
33
  .. _pyproj: http://pypi.python.org/pypi/pyproj
34
34
 
@@ -51,17 +51,10 @@ Description: Shapely
51
51
 
52
52
  $ sudo easy_install Shapely
53
53
 
54
- with the setup script::
54
+ or with the setup script::
55
55
 
56
56
  $ sudo python setup.py install
57
57
 
58
- or by using the development buildout on Linux, which also provides libgeos_c::
59
-
60
- $ svn co http://svn.gispython.org/svn/gispy/buildout/shapely.buildout/trunk shapely.buildout
61
- $ cd shapely.buildout
62
- $ python bootstrap.py
63
- $ ./bin/buildout
64
-
65
58
 
66
59
  Usage
67
60
  -----
@@ -124,7 +117,7 @@ Description: Shapely
124
117
  >>> tuple(shape.coords)
125
118
  ((0.0, 0.0),)
126
119
 
127
- See http://trac.gispython.org/projects/PCL/wiki/PythonGeoInterface for more
120
+ See http://trac.gispython.org/lab/wiki/PythonGeoInterface for more
128
121
  details on the interface.
129
122
 
130
123
 
@@ -148,7 +141,7 @@ Description: Shapely
148
141
 
149
142
  For current information about this project, see the wiki_.
150
143
 
151
- .. _wiki: http://trac.gispython.org/projects/PCL/wiki/Shapely
144
+ .. _wiki: http://trac.gispython.org/lab/wiki/Shapely
152
145
  .. _manual: http://gispython.org/shapely/manual.html
153
146
 
154
147
  If you have questions, please consider joining our community list:
@@ -11,7 +11,7 @@ to other packages like WorldMill_ and pyproj_. For more information, see:
11
11
  * Shapely manual_
12
12
 
13
13
  Shapely requires Python 2.4+. (I've also begun to port it to Python 3.0:
14
- http://zcologia.com/news/564/shapely-for-python-3-0/.)
14
+ http://sgillies.net/blog/564/shapely-for-python-3-0/.)
15
15
 
16
16
  .. note::
17
17
  We've switched to Windows GEOS DLLs based on MinGW in versions >= 1.0.6.
@@ -19,8 +19,8 @@ http://zcologia.com/news/564/shapely-for-python-3-0/.)
19
19
 
20
20
  See also CHANGES.txt_ and HISTORY.txt_.
21
21
 
22
- .. _CHANGES.txt: http://trac.gispython.org/projects/PCL/browser/Shapely/trunk/CHANGES.txt
23
- .. _HISTORY.txt: http://trac.gispython.org/projects/PCL/browser/Shapely/trunk/HISTORY.txt
22
+ .. _CHANGES.txt: http://trac.gispython.org/lab/browser/Shapely/trunk/CHANGES.txt
23
+ .. _HISTORY.txt: http://trac.gispython.org/lab/browser/Shapely/trunk/HISTORY.txt
24
24
  .. _WorldMill: http://pypi.python.org/pypi/WorldMill
25
25
  .. _pyproj: http://pypi.python.org/pypi/pyproj
26
26
 
@@ -43,17 +43,10 @@ is on the system library path, and install from the Python package index::
43
43
 
44
44
  $ sudo easy_install Shapely
45
45
 
46
- with the setup script::
46
+ or with the setup script::
47
47
 
48
48
  $ sudo python setup.py install
49
49
 
50
- or by using the development buildout on Linux, which also provides libgeos_c::
51
-
52
- $ svn co http://svn.gispython.org/svn/gispy/buildout/shapely.buildout/trunk shapely.buildout
53
- $ cd shapely.buildout
54
- $ python bootstrap.py
55
- $ ./bin/buildout
56
-
57
50
 
58
51
  Usage
59
52
  -----
@@ -116,7 +109,7 @@ geometry with the asShape factory::
116
109
  >>> tuple(shape.coords)
117
110
  ((0.0, 0.0),)
118
111
 
119
- See http://trac.gispython.org/projects/PCL/wiki/PythonGeoInterface for more
112
+ See http://trac.gispython.org/lab/wiki/PythonGeoInterface for more
120
113
  details on the interface.
121
114
 
122
115
 
@@ -140,7 +133,7 @@ Support
140
133
 
141
134
  For current information about this project, see the wiki_.
142
135
 
143
- .. _wiki: http://trac.gispython.org/projects/PCL/wiki/Shapely
136
+ .. _wiki: http://trac.gispython.org/lab/wiki/Shapely
144
137
  .. _manual: http://gispython.org/shapely/manual.html
145
138
 
146
139
  If you have questions, please consider joining our community list:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.0
2
2
  Name: Shapely
3
- Version: 1.0.12
3
+ Version: 1.0.14
4
4
  Summary: Geospatial geometries, predicates, and operations
5
5
  Home-page: http://trac.gispython.org/lab/wiki/Shapely
6
6
  Author: Sean Gillies
@@ -19,7 +19,7 @@ Description: Shapely
19
19
  * Shapely manual_
20
20
 
21
21
  Shapely requires Python 2.4+. (I've also begun to port it to Python 3.0:
22
- http://zcologia.com/news/564/shapely-for-python-3-0/.)
22
+ http://sgillies.net/blog/564/shapely-for-python-3-0/.)
23
23
 
24
24
  .. note::
25
25
  We've switched to Windows GEOS DLLs based on MinGW in versions >= 1.0.6.
@@ -27,8 +27,8 @@ Description: Shapely
27
27
 
28
28
  See also CHANGES.txt_ and HISTORY.txt_.
29
29
 
30
- .. _CHANGES.txt: http://trac.gispython.org/projects/PCL/browser/Shapely/trunk/CHANGES.txt
31
- .. _HISTORY.txt: http://trac.gispython.org/projects/PCL/browser/Shapely/trunk/HISTORY.txt
30
+ .. _CHANGES.txt: http://trac.gispython.org/lab/browser/Shapely/trunk/CHANGES.txt
31
+ .. _HISTORY.txt: http://trac.gispython.org/lab/browser/Shapely/trunk/HISTORY.txt
32
32
  .. _WorldMill: http://pypi.python.org/pypi/WorldMill
33
33
  .. _pyproj: http://pypi.python.org/pypi/pyproj
34
34
 
@@ -51,17 +51,10 @@ Description: Shapely
51
51
 
52
52
  $ sudo easy_install Shapely
53
53
 
54
- with the setup script::
54
+ or with the setup script::
55
55
 
56
56
  $ sudo python setup.py install
57
57
 
58
- or by using the development buildout on Linux, which also provides libgeos_c::
59
-
60
- $ svn co http://svn.gispython.org/svn/gispy/buildout/shapely.buildout/trunk shapely.buildout
61
- $ cd shapely.buildout
62
- $ python bootstrap.py
63
- $ ./bin/buildout
64
-
65
58
 
66
59
  Usage
67
60
  -----
@@ -124,7 +117,7 @@ Description: Shapely
124
117
  >>> tuple(shape.coords)
125
118
  ((0.0, 0.0),)
126
119
 
127
- See http://trac.gispython.org/projects/PCL/wiki/PythonGeoInterface for more
120
+ See http://trac.gispython.org/lab/wiki/PythonGeoInterface for more
128
121
  details on the interface.
129
122
 
130
123
 
@@ -148,7 +141,7 @@ Description: Shapely
148
141
 
149
142
  For current information about this project, see the wiki_.
150
143
 
151
- .. _wiki: http://trac.gispython.org/projects/PCL/wiki/Shapely
144
+ .. _wiki: http://trac.gispython.org/lab/wiki/Shapely
152
145
  .. _manual: http://gispython.org/shapely/manual.html
153
146
 
154
147
  If you have questions, please consider joining our community list:
@@ -3,6 +3,7 @@ CREDITS.txt
3
3
  GEOS-C-API.txt
4
4
  HISTORY.txt
5
5
  LICENSE.txt
6
+ MANIFEST.in
6
7
  README.txt
7
8
  setup.py
8
9
  setup_windows.py
@@ -57,4 +58,4 @@ tests/rungrind.dist
57
58
  tests/test_doctests.py
58
59
  tests/test_threads.py
59
60
  tests/valgrind-python.supp
60
- tests/wkt_locale.txt
61
+ tests/wkt_locale.txt
@@ -0,0 +1,2 @@
1
+ setuptools
2
+ ctypes
@@ -10,7 +10,7 @@ if version_info[:2] < (2,5):
10
10
  readme_text = file('README.txt', 'rb').read()
11
11
 
12
12
  setup(name = 'Shapely',
13
- version = '1.0.12',
13
+ version = '1.0.14',
14
14
  description = 'Geospatial geometries, predicates, and operations',
15
15
  license = 'BSD',
16
16
  keywords = 'geometry topology',
@@ -10,7 +10,7 @@ if version_info[:2] < (2,5):
10
10
  readme_text = file('README.txt', 'rb').read()
11
11
 
12
12
  setup(name = 'Shapely',
13
- version = '1.0.12',
13
+ version = '1.0.14',
14
14
  description = 'Geospatial geometries, predicates, and operations',
15
15
  license = 'BSD',
16
16
  keywords = 'geometry topology',
@@ -0,0 +1,212 @@
1
+ # Prototyping of libgeos_c functions, now using a function written by
2
+ # `tartley`: http://trac.gispython.org/lab/ticket/189
3
+
4
+ import ctypes
5
+
6
+ def prototype(lgeos):
7
+
8
+ lgeos.initGEOS.restype = None
9
+
10
+ lgeos.finishGEOS.restype = None
11
+
12
+ lgeos.GEOSversion.restype = ctypes.c_char_p
13
+
14
+ lgeos.GEOSGeomFromWKT.restype = ctypes.c_void_p
15
+ lgeos.GEOSGeomFromWKT.argtypes = [ctypes.c_char_p]
16
+
17
+ lgeos.GEOSGeomToWKT.restype = ctypes.c_char_p
18
+ lgeos.GEOSGeomToWKT.argtypes = [ctypes.c_void_p]
19
+
20
+ lgeos.GEOS_setWKBOutputDims.restype = ctypes.c_int
21
+ lgeos.GEOS_setWKBOutputDims.argtypes = [ctypes.c_int]
22
+
23
+ lgeos.GEOSGeomFromWKB_buf.restype = ctypes.c_void_p
24
+ lgeos.GEOSGeomFromWKB_buf.argtypes = [ctypes.c_void_p, ctypes.c_size_t]
25
+
26
+ lgeos.GEOSGeomToWKB_buf.restype = ctypes.c_void_p
27
+ lgeos.GEOSGeomToWKB_buf.argtypes = [ctypes.c_void_p , ctypes.POINTER(ctypes.c_size_t)]
28
+
29
+
30
+ lgeos.GEOSCoordSeq_create.restype = ctypes.c_void_p
31
+ lgeos.GEOSCoordSeq_create.argtypes = [ctypes.c_uint, ctypes.c_uint]
32
+
33
+ lgeos.GEOSCoordSeq_clone.restype = ctypes.c_void_p
34
+ lgeos.GEOSCoordSeq_clone.argtypes = [ctypes.c_void_p]
35
+
36
+ lgeos.GEOSCoordSeq_destroy.restype = None
37
+ lgeos.GEOSCoordSeq_destroy.argtypes = [ctypes.c_void_p]
38
+
39
+ lgeos.GEOSCoordSeq_setX.restype = ctypes.c_int
40
+ lgeos.GEOSCoordSeq_setX.argtypes = [ctypes.c_void_p, ctypes.c_uint, ctypes.c_double]
41
+
42
+ lgeos.GEOSCoordSeq_setY.restype = ctypes.c_int
43
+ lgeos.GEOSCoordSeq_setY.argtypes = [ctypes.c_void_p, ctypes.c_uint, ctypes.c_double]
44
+
45
+ lgeos.GEOSCoordSeq_setZ.restype = ctypes.c_int
46
+ lgeos.GEOSCoordSeq_setZ.argtypes = [ctypes.c_void_p, ctypes.c_uint, ctypes.c_double]
47
+
48
+ lgeos.GEOSCoordSeq_setOrdinate.restype = ctypes.c_int
49
+ lgeos.GEOSCoordSeq_setOrdinate.argtypes = [ctypes.c_void_p, ctypes.c_uint, ctypes.c_uint, ctypes.c_double]
50
+
51
+ lgeos.GEOSCoordSeq_getX.restype = ctypes.c_int
52
+ lgeos.GEOSCoordSeq_getX.argtypes = [ctypes.c_void_p, ctypes.c_uint, ctypes.c_void_p]
53
+
54
+ lgeos.GEOSCoordSeq_getY.restype = ctypes.c_int
55
+ lgeos.GEOSCoordSeq_getY.argtypes = [ctypes.c_void_p, ctypes.c_uint, ctypes.c_void_p]
56
+
57
+ lgeos.GEOSCoordSeq_getZ.restype = ctypes.c_int
58
+ lgeos.GEOSCoordSeq_getZ.argtypes = [ctypes.c_void_p, ctypes.c_uint, ctypes.c_void_p]
59
+
60
+ lgeos.GEOSCoordSeq_getSize.restype = ctypes.c_int
61
+ lgeos.GEOSCoordSeq_getSize.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
62
+
63
+ lgeos.GEOSCoordSeq_getDimensions.restype = ctypes.c_int
64
+ lgeos.GEOSCoordSeq_getDimensions.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
65
+
66
+ lgeos.GEOSGeom_createPoint.restype = ctypes.c_void_p
67
+ lgeos.GEOSGeom_createPoint.argtypes = [ctypes.c_void_p]
68
+
69
+ lgeos.GEOSGeom_createLinearRing.restype = ctypes.c_void_p
70
+ lgeos.GEOSGeom_createLinearRing.argtypes = [ctypes.c_void_p]
71
+
72
+ lgeos.GEOSGeom_createLineString.restype = ctypes.c_void_p
73
+ lgeos.GEOSGeom_createLineString.argtypes = [ctypes.c_void_p]
74
+
75
+ lgeos.GEOSGeom_createPolygon.restype = ctypes.c_void_p
76
+ lgeos.GEOSGeom_createPolygon.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_uint]
77
+
78
+ lgeos.GEOSGeom_createCollection.restype = ctypes.c_void_p
79
+ lgeos.GEOSGeom_createCollection.argtypes = [ctypes.c_int, ctypes.c_void_p, ctypes.c_uint]
80
+
81
+ lgeos.GEOSGeom_clone.restype = ctypes.c_void_p
82
+ lgeos.GEOSGeom_clone.argtypes = [ctypes.c_void_p]
83
+
84
+ lgeos.GEOSGeom_destroy.restype = None
85
+ lgeos.GEOSGeom_destroy.argtypes = [ctypes.c_void_p]
86
+
87
+ lgeos.GEOSEnvelope.restype = ctypes.c_void_p
88
+ lgeos.GEOSEnvelope.argtypes = [ctypes.c_void_p]
89
+
90
+ lgeos.GEOSIntersection.restype = ctypes.c_void_p
91
+ lgeos.GEOSIntersection.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
92
+
93
+ lgeos.GEOSBuffer.restype = ctypes.c_void_p
94
+ lgeos.GEOSBuffer.argtypes = [ctypes.c_void_p, ctypes.c_double, ctypes.c_int]
95
+
96
+ lgeos.GEOSConvexHull.restype = ctypes.c_void_p
97
+ lgeos.GEOSConvexHull.argtypes = [ctypes.c_void_p]
98
+
99
+ lgeos.GEOSDifference.restype = ctypes.c_void_p
100
+ lgeos.GEOSDifference.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
101
+
102
+ lgeos.GEOSSymDifference.restype = ctypes.c_void_p
103
+ lgeos.GEOSSymDifference.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
104
+
105
+ lgeos.GEOSBoundary.restype = ctypes.c_void_p
106
+ lgeos.GEOSBoundary.argtypes = [ctypes.c_void_p]
107
+
108
+ lgeos.GEOSUnion.restype = ctypes.c_void_p
109
+ lgeos.GEOSUnion.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
110
+
111
+ lgeos.GEOSPointOnSurface.restype = ctypes.c_void_p
112
+ lgeos.GEOSPointOnSurface.argtypes = [ctypes.c_void_p]
113
+
114
+ lgeos.GEOSGetCentroid.restype = ctypes.c_void_p
115
+ lgeos.GEOSGetCentroid.argtypes = [ctypes.c_void_p]
116
+
117
+ lgeos.GEOSRelate.restype = ctypes.c_char_p
118
+ lgeos.GEOSRelate.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
119
+
120
+ lgeos.GEOSPolygonize.restype = ctypes.c_void_p
121
+ lgeos.GEOSPolygonize.argtypes = [ctypes.c_void_p, ctypes.c_uint]
122
+
123
+ lgeos.GEOSLineMerge.restype = ctypes.c_void_p
124
+ lgeos.GEOSLineMerge.argtypes = [ctypes.c_void_p]
125
+
126
+ lgeos.GEOSRelatePattern.restype = ctypes.c_char
127
+ lgeos.GEOSRelatePattern.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_char_p]
128
+
129
+ lgeos.GEOSDisjoint.restype = ctypes.c_int
130
+ lgeos.GEOSDisjoint.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
131
+
132
+ lgeos.GEOSTouches.restype = ctypes.c_int
133
+ lgeos.GEOSTouches.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
134
+
135
+ lgeos.GEOSIntersects.restype = ctypes.c_int
136
+ lgeos.GEOSIntersects.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
137
+
138
+ lgeos.GEOSCrosses.restype = ctypes.c_int
139
+ lgeos.GEOSCrosses.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
140
+
141
+ lgeos.GEOSWithin.restype = ctypes.c_int
142
+ lgeos.GEOSWithin.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
143
+
144
+ lgeos.GEOSContains.restype = ctypes.c_int
145
+ lgeos.GEOSContains.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
146
+
147
+ lgeos.GEOSOverlaps.restype = ctypes.c_int
148
+ lgeos.GEOSOverlaps.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
149
+
150
+ lgeos.GEOSEquals.restype = ctypes.c_int
151
+ lgeos.GEOSEquals.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
152
+
153
+ lgeos.GEOSisEmpty.restype = ctypes.c_int
154
+ lgeos.GEOSisEmpty.argtypes = [ctypes.c_void_p]
155
+
156
+ lgeos.GEOSisValid.restype = ctypes.c_int
157
+ lgeos.GEOSisValid.argtypes = [ctypes.c_void_p]
158
+
159
+ lgeos.GEOSisSimple.restype = ctypes.c_int
160
+ lgeos.GEOSisSimple.argtypes = [ctypes.c_void_p]
161
+
162
+ lgeos.GEOSisRing.restype = ctypes.c_int
163
+ lgeos.GEOSisRing.argtypes = [ctypes.c_void_p]
164
+
165
+ lgeos.GEOSHasZ.restype = ctypes.c_int
166
+ lgeos.GEOSHasZ.argtypes = [ctypes.c_void_p]
167
+
168
+ lgeos.GEOSGeomType.restype = ctypes.c_char_p
169
+ lgeos.GEOSGeomType.argtypes = [ctypes.c_void_p]
170
+
171
+ lgeos.GEOSGeomTypeId.restype = ctypes.c_int
172
+ lgeos.GEOSGeomTypeId.argtypes = [ctypes.c_void_p]
173
+
174
+ lgeos.GEOSGetSRID.restype = ctypes.c_int
175
+ lgeos.GEOSGetSRID.argtypes = [ctypes.c_void_p]
176
+
177
+ lgeos.GEOSSetSRID.restype = None
178
+ lgeos.GEOSSetSRID.argtypes = [ctypes.c_void_p, ctypes.c_int]
179
+
180
+ lgeos.GEOSGetNumGeometries.restype = ctypes.c_int
181
+ lgeos.GEOSGetNumGeometries.argtypes = [ctypes.c_void_p]
182
+
183
+ lgeos.GEOSGetGeometryN.restype = ctypes.c_void_p
184
+ lgeos.GEOSGetGeometryN.argtypes = [ctypes.c_void_p, ctypes.c_int]
185
+
186
+ lgeos.GEOSGetNumInteriorRings.restype = ctypes.c_int
187
+ lgeos.GEOSGetNumInteriorRings.argtypes = [ctypes.c_void_p]
188
+
189
+ lgeos.GEOSGetInteriorRingN.restype = ctypes.c_void_p
190
+ lgeos.GEOSGetInteriorRingN.argtypes = [ctypes.c_void_p, ctypes.c_int]
191
+
192
+ lgeos.GEOSGetExteriorRing.restype = ctypes.c_void_p
193
+ lgeos.GEOSGetExteriorRing.argtypes = [ctypes.c_void_p]
194
+
195
+ lgeos.GEOSGetNumCoordinates.restype = ctypes.c_int
196
+ lgeos.GEOSGetNumCoordinates.argtypes = [ctypes.c_void_p]
197
+
198
+ lgeos.GEOSGeom_getCoordSeq.restype = ctypes.c_void_p
199
+ lgeos.GEOSGeom_getCoordSeq.argtypes = [ctypes.c_void_p]
200
+
201
+ lgeos.GEOSGeom_getDimensions.restype = ctypes.c_int
202
+ lgeos.GEOSGeom_getDimensions.argtypes = [ctypes.c_void_p]
203
+
204
+ lgeos.GEOSArea.restype = ctypes.c_double
205
+ lgeos.GEOSArea.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
206
+
207
+ lgeos.GEOSLength.restype = ctypes.c_int
208
+ lgeos.GEOSLength.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
209
+
210
+ lgeos.GEOSDistance.restype = ctypes.c_int
211
+ lgeos.GEOSDistance.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p]
212
+
@@ -2,7 +2,7 @@
2
2
  Base geometry class and utilities.
3
3
  """
4
4
 
5
- from ctypes import string_at, byref, c_int, c_size_t, c_char_p, c_double
5
+ from ctypes import string_at, byref, c_int, c_size_t, c_char_p, c_double, c_void_p
6
6
  import sys
7
7
 
8
8
  from shapely.geos import lgeos, free, allocated_c_char_p
@@ -349,13 +349,14 @@ class BaseGeometry(object):
349
349
  def to_wkb(self):
350
350
  """Returns a WKB byte string representation of the geometry."""
351
351
  func = lgeos.GEOSGeomToWKB_buf
352
- size = c_int()
352
+ size = c_size_t()
353
353
  def errcheck(result, func, argtuple):
354
+ if not result: return None
354
355
  retval = string_at(result, size.value)[:]
355
356
  free(result)
356
357
  return retval
357
358
  func.errcheck = errcheck
358
- return func(self._geom, byref(size))
359
+ return func(c_void_p(self._geom), byref(size))
359
360
 
360
361
  @exceptNull
361
362
  def to_wkt(self):
@@ -3,10 +3,13 @@ Exports the libgeos_c shared lib, GEOS-specific exceptions, and utilities.
3
3
  """
4
4
 
5
5
  import atexit
6
+ from ctypes import cdll, CDLL, PyDLL, CFUNCTYPE, c_char_p, c_void_p
7
+ from ctypes.util import find_library
6
8
  import os
7
9
  import sys
8
- from ctypes import cdll, CDLL, PyDLL, CFUNCTYPE, c_char_p
9
- from ctypes.util import find_library
10
+
11
+ from ctypes_declarations import prototype
12
+
10
13
 
11
14
  if sys.platform == 'win32':
12
15
  try:
@@ -40,6 +43,8 @@ elif sys.platform == 'darwin':
40
43
  raise ImportError, "Could not find geos_c library"
41
44
  lgeos = PyDLL(lib)
42
45
  free = CDLL(find_library('libc')).free
46
+ free.argtypes=[c_void_p]
47
+ free.restype=None
43
48
  else:
44
49
  # Try the major versioned name first, falling back on the unversioned name.
45
50
  try:
@@ -49,16 +54,17 @@ else:
49
54
  except:
50
55
  raise
51
56
  free = CDLL('libc.so.6').free
57
+ free.argtypes=[c_void_p]
58
+ free.restype=None
52
59
 
60
+ # Prototype the libgeos_c functions using new code from `tarley` in
61
+ # http://trac.gispython.org/lab/ticket/189
62
+ prototype(lgeos)
53
63
 
54
- # Load the ctypes restype and argtype declarations for geos_c functions.
55
- _here = os.path.abspath(os.path.dirname(__file__))
56
- execfile(os.path.join(_here, 'ctypes_declarations.py'))
57
64
 
58
65
  class allocated_c_char_p(c_char_p):
59
66
  pass
60
67
 
61
-
62
68
  # Exceptions
63
69
 
64
70
  class ReadingError(Exception):
@@ -3,6 +3,7 @@ Load/dump geometries using the well-known binary (WKB) format.
3
3
  """
4
4
 
5
5
  from ctypes import byref, c_int, c_size_t, c_char_p, string_at
6
+ from ctypes import c_void_p, c_size_t
6
7
 
7
8
  from shapely.geos import lgeos, free, ReadingError
8
9
  from shapely.geometry.base import geom_factory
@@ -26,13 +27,14 @@ def load(fp):
26
27
  def dumps(ob):
27
28
  """Dump a WKB representation of a geometry to a byte string."""
28
29
  func = lgeos.GEOSGeomToWKB_buf
29
- size = c_int()
30
+ size = c_size_t()
30
31
  def errcheck(result, func, argtuple):
32
+ if not result: return None
31
33
  retval = string_at(result, size.value)[:]
32
34
  free(result)
33
35
  return retval
34
36
  func.errcheck = errcheck
35
- return func(ob._geom, byref(size))
37
+ return func(c_void_p(ob._geom), byref(size))
36
38
 
37
39
  def dump(ob, fp):
38
40
  """Dump a geometry to an open file."""
@@ -3,9 +3,11 @@ Test locale independence of WKT
3
3
 
4
4
  Set locale to one that uses a comma as decimal seperator`
5
5
 
6
- >>> import locale
7
- >>> locale.setlocale(locale.LC_ALL, 'pt_BR.UTF-8')
8
- 'pt_BR.UTF-8'
6
+ >>> import locale, sys
7
+ >>> if sys.platform == 'win32':
8
+ ... _ = locale.setlocale(locale.LC_ALL, 'portuguese-brazil')
9
+ ... else:
10
+ ... _ = locale.setlocale(locale.LC_ALL, 'pt_BR.UTF-8')
9
11
 
10
12
  Test reading and writing`
11
13
 
@@ -1 +0,0 @@
1
- setuptools
@@ -1,204 +0,0 @@
1
- import ctypes
2
-
3
- lgeos = lgeos # reduce pyflakes complaints
4
-
5
- lgeos.initGEOS.restype = None
6
-
7
- lgeos.finishGEOS.restype = None
8
-
9
- lgeos.GEOSversion.restype = ctypes.c_char_p
10
-
11
- lgeos.GEOSGeomFromWKT.restype = ctypes.c_void_p
12
- lgeos.GEOSGeomFromWKT.argtypes = [ctypes.c_char_p]
13
-
14
- lgeos.GEOSGeomToWKT.restype = ctypes.c_char_p
15
- lgeos.GEOSGeomToWKT.argtypes = [ctypes.c_void_p]
16
-
17
- lgeos.GEOS_setWKBOutputDims.restype = ctypes.c_int
18
- lgeos.GEOS_setWKBOutputDims.argtypes = [ctypes.c_int]
19
-
20
- lgeos.GEOSGeomFromWKB_buf.restype = ctypes.c_void_p
21
- lgeos.GEOSGeomFromWKB_buf.argtypes = [ctypes.c_void_p, ctypes.c_size_t]
22
-
23
- lgeos.GEOSCoordSeq_create.restype = ctypes.c_void_p
24
- lgeos.GEOSCoordSeq_create.argtypes = [ctypes.c_uint, ctypes.c_uint]
25
-
26
- lgeos.GEOSCoordSeq_clone.restype = ctypes.c_void_p
27
- lgeos.GEOSCoordSeq_clone.argtypes = [ctypes.c_void_p]
28
-
29
- lgeos.GEOSCoordSeq_destroy.restype = None
30
- lgeos.GEOSCoordSeq_destroy.argtypes = [ctypes.c_void_p]
31
-
32
- lgeos.GEOSCoordSeq_setX.restype = ctypes.c_int
33
- lgeos.GEOSCoordSeq_setX.argtypes = [ctypes.c_void_p, ctypes.c_uint, ctypes.c_double]
34
-
35
- lgeos.GEOSCoordSeq_setY.restype = ctypes.c_int
36
- lgeos.GEOSCoordSeq_setY.argtypes = [ctypes.c_void_p, ctypes.c_uint, ctypes.c_double]
37
-
38
- lgeos.GEOSCoordSeq_setZ.restype = ctypes.c_int
39
- lgeos.GEOSCoordSeq_setZ.argtypes = [ctypes.c_void_p, ctypes.c_uint, ctypes.c_double]
40
-
41
- lgeos.GEOSCoordSeq_setOrdinate.restype = ctypes.c_int
42
- lgeos.GEOSCoordSeq_setOrdinate.argtypes = [ctypes.c_void_p, ctypes.c_uint, ctypes.c_uint, ctypes.c_double]
43
-
44
- lgeos.GEOSCoordSeq_getX.restype = ctypes.c_int
45
- lgeos.GEOSCoordSeq_getX.argtypes = [ctypes.c_void_p, ctypes.c_uint, ctypes.c_void_p]
46
-
47
- lgeos.GEOSCoordSeq_getY.restype = ctypes.c_int
48
- lgeos.GEOSCoordSeq_getY.argtypes = [ctypes.c_void_p, ctypes.c_uint, ctypes.c_void_p]
49
-
50
- lgeos.GEOSCoordSeq_getZ.restype = ctypes.c_int
51
- lgeos.GEOSCoordSeq_getZ.argtypes = [ctypes.c_void_p, ctypes.c_uint, ctypes.c_void_p]
52
-
53
- lgeos.GEOSCoordSeq_getSize.restype = ctypes.c_int
54
- lgeos.GEOSCoordSeq_getSize.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
55
-
56
- lgeos.GEOSCoordSeq_getDimensions.restype = ctypes.c_int
57
- lgeos.GEOSCoordSeq_getDimensions.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
58
-
59
- lgeos.GEOSGeom_createPoint.restype = ctypes.c_void_p
60
- lgeos.GEOSGeom_createPoint.argtypes = [ctypes.c_void_p]
61
-
62
- lgeos.GEOSGeom_createLinearRing.restype = ctypes.c_void_p
63
- lgeos.GEOSGeom_createLinearRing.argtypes = [ctypes.c_void_p]
64
-
65
- lgeos.GEOSGeom_createLineString.restype = ctypes.c_void_p
66
- lgeos.GEOSGeom_createLineString.argtypes = [ctypes.c_void_p]
67
-
68
- lgeos.GEOSGeom_createPolygon.restype = ctypes.c_void_p
69
- lgeos.GEOSGeom_createPolygon.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_uint]
70
-
71
- lgeos.GEOSGeom_createCollection.restype = ctypes.c_void_p
72
- lgeos.GEOSGeom_createCollection.argtypes = [ctypes.c_int, ctypes.c_void_p, ctypes.c_uint]
73
-
74
- lgeos.GEOSGeom_clone.restype = ctypes.c_void_p
75
- lgeos.GEOSGeom_clone.argtypes = [ctypes.c_void_p]
76
-
77
- lgeos.GEOSGeom_destroy.restype = None
78
- lgeos.GEOSGeom_destroy.argtypes = [ctypes.c_void_p]
79
-
80
- lgeos.GEOSEnvelope.restype = ctypes.c_void_p
81
- lgeos.GEOSEnvelope.argtypes = [ctypes.c_void_p]
82
-
83
- lgeos.GEOSIntersection.restype = ctypes.c_void_p
84
- lgeos.GEOSIntersection.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
85
-
86
- lgeos.GEOSBuffer.restype = ctypes.c_void_p
87
- lgeos.GEOSBuffer.argtypes = [ctypes.c_void_p, ctypes.c_double, ctypes.c_int]
88
-
89
- lgeos.GEOSConvexHull.restype = ctypes.c_void_p
90
- lgeos.GEOSConvexHull.argtypes = [ctypes.c_void_p]
91
-
92
- lgeos.GEOSDifference.restype = ctypes.c_void_p
93
- lgeos.GEOSDifference.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
94
-
95
- lgeos.GEOSSymDifference.restype = ctypes.c_void_p
96
- lgeos.GEOSSymDifference.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
97
-
98
- lgeos.GEOSBoundary.restype = ctypes.c_void_p
99
- lgeos.GEOSBoundary.argtypes = [ctypes.c_void_p]
100
-
101
- lgeos.GEOSUnion.restype = ctypes.c_void_p
102
- lgeos.GEOSUnion.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
103
-
104
- lgeos.GEOSPointOnSurface.restype = ctypes.c_void_p
105
- lgeos.GEOSPointOnSurface.argtypes = [ctypes.c_void_p]
106
-
107
- lgeos.GEOSGetCentroid.restype = ctypes.c_void_p
108
- lgeos.GEOSGetCentroid.argtypes = [ctypes.c_void_p]
109
-
110
- lgeos.GEOSRelate.restype = ctypes.c_char_p
111
- lgeos.GEOSRelate.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
112
-
113
- lgeos.GEOSPolygonize.restype = ctypes.c_void_p
114
- lgeos.GEOSPolygonize.argtypes = [ctypes.c_void_p, ctypes.c_uint]
115
-
116
- lgeos.GEOSLineMerge.restype = ctypes.c_void_p
117
- lgeos.GEOSLineMerge.argtypes = [ctypes.c_void_p]
118
-
119
- lgeos.GEOSRelatePattern.restype = ctypes.c_char
120
- lgeos.GEOSRelatePattern.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_char_p]
121
-
122
- lgeos.GEOSDisjoint.restype = ctypes.c_int
123
- lgeos.GEOSDisjoint.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
124
-
125
- lgeos.GEOSTouches.restype = ctypes.c_int
126
- lgeos.GEOSTouches.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
127
-
128
- lgeos.GEOSIntersects.restype = ctypes.c_int
129
- lgeos.GEOSIntersects.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
130
-
131
- lgeos.GEOSCrosses.restype = ctypes.c_int
132
- lgeos.GEOSCrosses.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
133
-
134
- lgeos.GEOSWithin.restype = ctypes.c_int
135
- lgeos.GEOSWithin.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
136
-
137
- lgeos.GEOSContains.restype = ctypes.c_int
138
- lgeos.GEOSContains.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
139
-
140
- lgeos.GEOSOverlaps.restype = ctypes.c_int
141
- lgeos.GEOSOverlaps.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
142
-
143
- lgeos.GEOSEquals.restype = ctypes.c_int
144
- lgeos.GEOSEquals.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
145
-
146
- lgeos.GEOSisEmpty.restype = ctypes.c_int
147
- lgeos.GEOSisEmpty.argtypes = [ctypes.c_void_p]
148
-
149
- lgeos.GEOSisValid.restype = ctypes.c_int
150
- lgeos.GEOSisValid.argtypes = [ctypes.c_void_p]
151
-
152
- lgeos.GEOSisSimple.restype = ctypes.c_int
153
- lgeos.GEOSisSimple.argtypes = [ctypes.c_void_p]
154
-
155
- lgeos.GEOSisRing.restype = ctypes.c_int
156
- lgeos.GEOSisRing.argtypes = [ctypes.c_void_p]
157
-
158
- lgeos.GEOSHasZ.restype = ctypes.c_int
159
- lgeos.GEOSHasZ.argtypes = [ctypes.c_void_p]
160
-
161
- lgeos.GEOSGeomType.restype = ctypes.c_char_p
162
- lgeos.GEOSGeomType.argtypes = [ctypes.c_void_p]
163
-
164
- lgeos.GEOSGeomTypeId.restype = ctypes.c_int
165
- lgeos.GEOSGeomTypeId.argtypes = [ctypes.c_void_p]
166
-
167
- lgeos.GEOSGetSRID.restype = ctypes.c_int
168
- lgeos.GEOSGetSRID.argtypes = [ctypes.c_void_p]
169
-
170
- lgeos.GEOSSetSRID.restype = None
171
- lgeos.GEOSSetSRID.argtypes = [ctypes.c_void_p, ctypes.c_int]
172
-
173
- lgeos.GEOSGetNumGeometries.restype = ctypes.c_int
174
- lgeos.GEOSGetNumGeometries.argtypes = [ctypes.c_void_p]
175
-
176
- lgeos.GEOSGetGeometryN.restype = ctypes.c_void_p
177
- lgeos.GEOSGetGeometryN.argtypes = [ctypes.c_void_p, ctypes.c_int]
178
-
179
- lgeos.GEOSGetNumInteriorRings.restype = ctypes.c_int
180
- lgeos.GEOSGetNumInteriorRings.argtypes = [ctypes.c_void_p]
181
-
182
- lgeos.GEOSGetInteriorRingN.restype = ctypes.c_void_p
183
- lgeos.GEOSGetInteriorRingN.argtypes = [ctypes.c_void_p, ctypes.c_int]
184
-
185
- lgeos.GEOSGetExteriorRing.restype = ctypes.c_void_p
186
- lgeos.GEOSGetExteriorRing.argtypes = [ctypes.c_void_p]
187
-
188
- lgeos.GEOSGetNumCoordinates.restype = ctypes.c_int
189
- lgeos.GEOSGetNumCoordinates.argtypes = [ctypes.c_void_p]
190
-
191
- lgeos.GEOSGeom_getCoordSeq.restype = ctypes.c_void_p
192
- lgeos.GEOSGeom_getCoordSeq.argtypes = [ctypes.c_void_p]
193
-
194
- lgeos.GEOSGeom_getDimensions.restype = ctypes.c_int
195
- lgeos.GEOSGeom_getDimensions.argtypes = [ctypes.c_void_p]
196
-
197
- lgeos.GEOSArea.restype = ctypes.c_double
198
- lgeos.GEOSArea.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
199
-
200
- lgeos.GEOSLength.restype = ctypes.c_int
201
- lgeos.GEOSLength.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
202
-
203
- lgeos.GEOSDistance.restype = ctypes.c_int
204
- lgeos.GEOSDistance.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p]
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