Opened 16 years ago

Last modified 16 years ago

#9566 closed

GeoJSON regexes doesn't accept leading and trailing whitespace or GeometryCollections — at Version 2

Reported by: jbronn Owned by: jbronn
Component: GIS Version: 1.0
Severity: Keywords: gis geojson gdal
Cc: Triage Stage: Accepted
Has patch: yes Needs documentation: no
Needs tests: yes Patch needs improvement: no
Easy pickings: no UI/UX: no

Description (last modified by jbronn)

from django.contrib.gis import gdal

json1 = '{ "type": "MultiPolygon", "coordinates": [ [ [ [ 102.000000, 2.000000 ], [ 103.000000, 2.000000 ], [ 103.000000, 3.000000 ], [ 102.000000, 3.000000 ], [ 102.000000, 2.000000 ] ] ], [ [ [ 100.000000, 0.000000 ], [ 101.000000, 0.000000 ], [ 101.000000, 1.000000 ], [ 100.000000, 1.000000 ], [ 100.000000, 0.000000 ] ], [ [ 100.200000, 0.200000 ], [ 100.800000, 0.200000 ], [ 100.800000, 0.800000 ], [ 100.200000, 0.800000 ], [ 100.200000, 0.200000 ] ] ] ] }'

json2 = """

{ "type": "MultiPolygon",
  "coordinates": [
    [[[102.0, 2.0], [103.0, 2.0], [103.0, 3.0], [102.0, 3.0], [102.0, 2.0]]],
    [[[100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0]],
     [[100.2, 0.2], [100.8, 0.2], [100.8, 0.8], [100.2, 0.8], [100.2, 0.2]]]
    ]
  }

"""

g1 = gdal.OGRGeometry(json1)
g2 = gdal.OGRGeometry(json2)

Trying to execute this raises this:

Traceback (most recent call last):
  File "geojson_regex.py", line 18, in <module>
    g2 = gdal.OGRGeometry(json2)
  File "/Users/jbronn/django/1.0.X/django/contrib/gis/gdal/geometries.py", line 106, in __init__
    ogr_t = OGRGeomType(geom_input)
  File "/Users/jbronn/django/1.0.X/django/contrib/gis/gdal/geomtype.py", line 29, in __init__
    raise OGRException('Invalid OGR String Type "%s"' % type_input)
django.contrib.gis.gdal.error.OGRException: Invalid OGR String Type "

{ "type": "MultiPolygon",
  "coordinates": [
    [[[102.0, 2.0], [103.0, 2.0], [103.0, 3.0], [102.0, 3.0], [102.0, 2.0]]],
    [[[100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0]],
     [[100.2, 0.2], [100.8, 0.2], [100.8, 0.8], [100.2, 0.8], [100.2, 0.2]]]
    ]
  }

"

Oh, and did I mention because the { and } characters aren't accepted, it can't parse the GeoJSON of geometry collections.

Attached is patch that improves the GeoJSON regex situation in the GDAL and GEOS libraries.

Change History (2)

comment:1 by jbronn, 16 years ago

Component: UncategorizedGIS
Keywords: gis geojson gdal added
milestone: post-1.0
Owner: changed from nobody to jbronn
Triage Stage: UnreviewedAccepted

comment:2 by jbronn, 16 years ago

Description: modified (diff)
Summary: GeoJSON regexes doesn't accept leading and trailing whitespaceGeoJSON regexes doesn't accept leading and trailing whitespace or GeometryCollections
Note: See TracTickets for help on using tickets.
Back to Top