Commit d1df1fd2 authored by Claude Paroz's avatar Claude Paroz
Browse files

Fixed #24207 -- Added 25D-type geometry field support to ogrinspect

Thanks Michael Diener for the report and sample data, and Tim Graham
for the review.
parent 10f7cfeb
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -85,3 +85,11 @@ class OGRGeomType(object):
        elif s == 'Unknown':
            s = 'Geometry'
        return s + 'Field'

    def to_multi(self):
        """
        Transform Point, LineString, Polygon, and their 25D equivalents
        to their Multi... counterpart.
        """
        if self.name.startswith(('Point', 'LineString', 'Polygon')):
            self.num += 3
+6 −9
Original line number Diff line number Diff line
@@ -43,11 +43,9 @@ def mapping(data_source, geom_name='geom', layer_key=0, multi_geom=False):
            mfield += 'field'
        _mapping[mfield] = field
    gtype = data_source[layer_key].geom_type
    if multi_geom and gtype.num in (1, 2, 3):
        prefix = 'MULTI'
    else:
        prefix = ''
    _mapping[geom_name] = prefix + str(gtype).upper()
    if multi_geom:
        gtype.to_multi()
    _mapping[geom_name] = str(gtype).upper()
    return _mapping


@@ -210,9 +208,8 @@ def _ogrinspect(data_source, model_name, geom_name='geom', layer_key=0, srid=Non

    # TODO: Autodetection of multigeometry types (see #7218).
    gtype = layer.geom_type
    if multi_geom and gtype.num in (1, 2, 3):
        geom_field = 'Multi%s' % gtype.django
    else:
    if multi_geom:
        gtype.to_multi()
    geom_field = gtype.django

    # Setting up the SRID keyword string.
+5.33 KiB

File added.

No diff preview for this file type.

+1 −0
Original line number Diff line number Diff line
PROJCS["MGI_Ferro_Austria_GK_East",GEOGCS["GCS_MGI_Ferro",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Ferro",-17.66666666666667],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",-5000000.0],PARAMETER["Central_Meridian",34.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]
 No newline at end of file
+37.2 KiB

File added.

No diff preview for this file type.

Loading