mirror of https://github.com/django/django.git
Fixed #30166 -- Dropped support for GDAL 1.11.
This commit is contained in:
parent
6eb4996672
commit
e7fd69d051
|
@ -46,7 +46,6 @@ from django.contrib.gis.gdal.base import GDALBase
|
||||||
from django.contrib.gis.gdal.envelope import Envelope, OGREnvelope
|
from django.contrib.gis.gdal.envelope import Envelope, OGREnvelope
|
||||||
from django.contrib.gis.gdal.error import GDALException, SRSException
|
from django.contrib.gis.gdal.error import GDALException, SRSException
|
||||||
from django.contrib.gis.gdal.geomtype import OGRGeomType
|
from django.contrib.gis.gdal.geomtype import OGRGeomType
|
||||||
from django.contrib.gis.gdal.libgdal import GDAL_VERSION
|
|
||||||
from django.contrib.gis.gdal.prototypes import geom as capi, srs as srs_api
|
from django.contrib.gis.gdal.prototypes import geom as capi, srs as srs_api
|
||||||
from django.contrib.gis.gdal.srs import CoordTransform, SpatialReference
|
from django.contrib.gis.gdal.srs import CoordTransform, SpatialReference
|
||||||
from django.contrib.gis.geometry import hex_regex, json_regex, wkt_regex
|
from django.contrib.gis.geometry import hex_regex, json_regex, wkt_regex
|
||||||
|
@ -140,14 +139,7 @@ class OGRGeometry(GDALBase):
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _from_json(geom_input):
|
def _from_json(geom_input):
|
||||||
ptr = capi.from_json(geom_input)
|
return capi.from_json(geom_input)
|
||||||
if GDAL_VERSION < (2, 0):
|
|
||||||
try:
|
|
||||||
capi.get_geom_srs(ptr)
|
|
||||||
except SRSException:
|
|
||||||
srs = SpatialReference(4326)
|
|
||||||
capi.assign_srs(ptr, srs.ptr)
|
|
||||||
return ptr
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_bbox(cls, bbox):
|
def from_bbox(cls, bbox):
|
||||||
|
|
|
@ -20,10 +20,10 @@ if lib_path:
|
||||||
lib_names = None
|
lib_names = None
|
||||||
elif os.name == 'nt':
|
elif os.name == 'nt':
|
||||||
# Windows NT shared libraries
|
# Windows NT shared libraries
|
||||||
lib_names = ['gdal203', 'gdal202', 'gdal201', 'gdal20', 'gdal111']
|
lib_names = ['gdal203', 'gdal202', 'gdal201', 'gdal20']
|
||||||
elif os.name == 'posix':
|
elif os.name == 'posix':
|
||||||
# *NIX library names.
|
# *NIX library names.
|
||||||
lib_names = ['gdal', 'GDAL', 'gdal2.3.0', 'gdal2.2.0', 'gdal2.1.0', 'gdal2.0.0', 'gdal1.11.0']
|
lib_names = ['gdal', 'GDAL', 'gdal2.3.0', 'gdal2.2.0', 'gdal2.1.0', 'gdal2.0.0']
|
||||||
else:
|
else:
|
||||||
raise ImproperlyConfigured('GDAL is unsupported on OS "%s".' % os.name)
|
raise ImproperlyConfigured('GDAL is unsupported on OS "%s".' % os.name)
|
||||||
|
|
||||||
|
|
|
@ -68,7 +68,6 @@ get_field_as_datetime = int_output(
|
||||||
)
|
)
|
||||||
get_field_as_double = double_output(lgdal.OGR_F_GetFieldAsDouble, [c_void_p, c_int])
|
get_field_as_double = double_output(lgdal.OGR_F_GetFieldAsDouble, [c_void_p, c_int])
|
||||||
get_field_as_integer = int_output(lgdal.OGR_F_GetFieldAsInteger, [c_void_p, c_int])
|
get_field_as_integer = int_output(lgdal.OGR_F_GetFieldAsInteger, [c_void_p, c_int])
|
||||||
if GDAL_VERSION >= (2, 0):
|
|
||||||
get_field_as_integer64 = int64_output(lgdal.OGR_F_GetFieldAsInteger64, [c_void_p, c_int])
|
get_field_as_integer64 = int64_output(lgdal.OGR_F_GetFieldAsInteger64, [c_void_p, c_int])
|
||||||
if GDAL_VERSION >= (2, 2):
|
if GDAL_VERSION >= (2, 2):
|
||||||
is_field_set = bool_output(lgdal.OGR_F_IsFieldSetAndNotNull, [c_void_p, c_int])
|
is_field_set = bool_output(lgdal.OGR_F_IsFieldSetAndNotNull, [c_void_p, c_int])
|
||||||
|
|
|
@ -10,7 +10,7 @@ Program Description Required
|
||||||
======================== ==================================== ================================ ===================================
|
======================== ==================================== ================================ ===================================
|
||||||
:doc:`GEOS <../geos>` Geometry Engine Open Source Yes 3.7, 3.6, 3.5, 3.4
|
:doc:`GEOS <../geos>` Geometry Engine Open Source Yes 3.7, 3.6, 3.5, 3.4
|
||||||
`PROJ.4`_ Cartographic Projections library Yes (PostgreSQL and SQLite only) 5.2, 5.1, 5.0, 4.x
|
`PROJ.4`_ Cartographic Projections library Yes (PostgreSQL and SQLite only) 5.2, 5.1, 5.0, 4.x
|
||||||
:doc:`GDAL <../gdal>` Geospatial Data Abstraction Library Yes 2.3, 2.2, 2.1, 2.0, 1.11
|
:doc:`GDAL <../gdal>` Geospatial Data Abstraction Library Yes 2.3, 2.2, 2.1, 2.0
|
||||||
:doc:`GeoIP <../geoip2>` IP-based geolocation library No 2
|
:doc:`GeoIP <../geoip2>` IP-based geolocation library No 2
|
||||||
`PostGIS`__ Spatial extensions for PostgreSQL Yes (PostgreSQL only) 2.5, 2.4, 2.3, 2.2
|
`PostGIS`__ Spatial extensions for PostgreSQL Yes (PostgreSQL only) 2.5, 2.4, 2.3, 2.2
|
||||||
`SpatiaLite`__ Spatial extensions for SQLite Yes (SQLite only) 4.3
|
`SpatiaLite`__ Spatial extensions for SQLite Yes (SQLite only) 4.3
|
||||||
|
@ -25,7 +25,6 @@ totally fine with GeoDjango. Your mileage may vary.
|
||||||
GEOS 3.5.0 2015-08-15
|
GEOS 3.5.0 2015-08-15
|
||||||
GEOS 3.6.0 2016-10-25
|
GEOS 3.6.0 2016-10-25
|
||||||
GEOS 3.7.0 2018-09-10
|
GEOS 3.7.0 2018-09-10
|
||||||
GDAL 1.11.0 2014-04-25
|
|
||||||
GDAL 2.0.0 2015-06
|
GDAL 2.0.0 2015-06
|
||||||
GDAL 2.1.0 2016-04
|
GDAL 2.1.0 2016-04
|
||||||
GDAL 2.2.0 2017-05
|
GDAL 2.2.0 2017-05
|
||||||
|
|
|
@ -229,6 +229,8 @@ backends.
|
||||||
|
|
||||||
* Support for SpatiaLite 4.1 and 4.2 is removed.
|
* Support for SpatiaLite 4.1 and 4.2 is removed.
|
||||||
|
|
||||||
|
* Support for GDAL 1.11 is removed.
|
||||||
|
|
||||||
Dropped support for PostgreSQL 9.4
|
Dropped support for PostgreSQL 9.4
|
||||||
----------------------------------
|
----------------------------------
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ import re
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
from django.contrib.gis.gdal import (
|
from django.contrib.gis.gdal import (
|
||||||
GDAL_VERSION, DataSource, Envelope, GDALException, OGRGeometry,
|
DataSource, Envelope, GDALException, OGRGeometry,
|
||||||
)
|
)
|
||||||
from django.contrib.gis.gdal.field import (
|
from django.contrib.gis.gdal.field import (
|
||||||
OFTDateTime, OFTInteger, OFTReal, OFTString,
|
OFTDateTime, OFTInteger, OFTReal, OFTString,
|
||||||
|
@ -38,7 +38,7 @@ ds_list = (
|
||||||
),
|
),
|
||||||
TestDS(
|
TestDS(
|
||||||
'test_vrt', ext='vrt', nfeat=3, nfld=3, geom='POINT', gtype='Point25D',
|
'test_vrt', ext='vrt', nfeat=3, nfld=3, geom='POINT', gtype='Point25D',
|
||||||
driver='OGR_VRT' if GDAL_VERSION >= (2, 0) else 'VRT',
|
driver='OGR_VRT',
|
||||||
fields={
|
fields={
|
||||||
'POINT_X': OFTString,
|
'POINT_X': OFTString,
|
||||||
'POINT_Y': OFTString,
|
'POINT_Y': OFTString,
|
||||||
|
|
|
@ -74,7 +74,7 @@ class OGRInspectTest(SimpleTestCase):
|
||||||
'',
|
'',
|
||||||
'class MyModel(models.Model):',
|
'class MyModel(models.Model):',
|
||||||
' float = models.FloatField()',
|
' float = models.FloatField()',
|
||||||
' int = models.{}()'.format('BigIntegerField' if GDAL_VERSION >= (2, 0) else 'FloatField'),
|
' int = models.BigIntegerField()',
|
||||||
' str = models.CharField(max_length=80)',
|
' str = models.CharField(max_length=80)',
|
||||||
' geom = models.PolygonField(%s)' % self.expected_srid,
|
' geom = models.PolygonField(%s)' % self.expected_srid,
|
||||||
]
|
]
|
||||||
|
@ -102,7 +102,7 @@ class OGRInspectTest(SimpleTestCase):
|
||||||
'',
|
'',
|
||||||
'class City(models.Model):',
|
'class City(models.Model):',
|
||||||
' name = models.CharField(max_length=80)',
|
' name = models.CharField(max_length=80)',
|
||||||
' population = models.{}()'.format('BigIntegerField' if GDAL_VERSION >= (2, 0) else 'FloatField'),
|
' population = models.BigIntegerField()',
|
||||||
' density = models.FloatField()',
|
' density = models.FloatField()',
|
||||||
' created = models.DateField()',
|
' created = models.DateField()',
|
||||||
' geom = models.PointField(%s)' % self.expected_srid,
|
' geom = models.PointField(%s)' % self.expected_srid,
|
||||||
|
|
Loading…
Reference in New Issue