summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--django/contrib/gis/gdal/prototypes/geom.py22
1 files changed, 17 insertions, 5 deletions
diff --git a/django/contrib/gis/gdal/prototypes/geom.py b/django/contrib/gis/gdal/prototypes/geom.py
index 06c2a75f3a..d5fb1a5c99 100644
--- a/django/contrib/gis/gdal/prototypes/geom.py
+++ b/django/contrib/gis/gdal/prototypes/geom.py
@@ -1,7 +1,7 @@
from ctypes import POINTER, c_char_p, c_double, c_int, c_void_p
from django.contrib.gis.gdal.envelope import OGREnvelope
-from django.contrib.gis.gdal.libgdal import lgdal
+from django.contrib.gis.gdal.libgdal import GDAL_VERSION, lgdal
from django.contrib.gis.gdal.prototypes.errcheck import check_envelope
from django.contrib.gis.gdal.prototypes.generation import (
const_string_output,
@@ -52,9 +52,18 @@ gety = pnt_func(lgdal.OGR_G_GetY)
getz = pnt_func(lgdal.OGR_G_GetZ)
# Geometry creation routines.
-from_wkb = geom_output(
- lgdal.OGR_G_CreateFromWkb, [c_char_p, c_void_p, POINTER(c_void_p), c_int], offset=-2
-)
+if GDAL_VERSION >= (3, 3):
+ from_wkb = geom_output(
+ lgdal.OGR_G_CreateFromWkbEx,
+ [c_char_p, c_void_p, POINTER(c_void_p), c_int],
+ offset=-2,
+ )
+else:
+ from_wkb = geom_output(
+ lgdal.OGR_G_CreateFromWkb,
+ [c_char_p, c_void_p, POINTER(c_void_p), c_int],
+ offset=-2,
+ )
from_wkt = geom_output(
lgdal.OGR_G_CreateFromWkt,
[POINTER(c_char_p), c_void_p, POINTER(c_void_p)],
@@ -88,7 +97,10 @@ to_wkt = string_output(
to_gml = string_output(
lgdal.OGR_G_ExportToGML, [c_void_p], str_result=True, decoding="ascii"
)
-get_wkbsize = int_output(lgdal.OGR_G_WkbSize, [c_void_p])
+if GDAL_VERSION >= (3, 3):
+ get_wkbsize = int_output(lgdal.OGR_G_WkbSizeEx, [c_void_p])
+else:
+ get_wkbsize = int_output(lgdal.OGR_G_WkbSize, [c_void_p])
# Geometry spatial-reference related routines.
assign_srs = void_output(