#9566 closed (fixed)
GeoJSON regexes doesn't accept leading and trailing whitespace or GeometryCollections
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 )
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.
Attachments (1)
Change History (7)
comment:1 by , 16 years ago
Component: | Uncategorized → GIS |
---|---|
Keywords: | gis geojson gdal added |
milestone: | → post-1.0 |
Owner: | changed from | to
Triage Stage: | Unreviewed → Accepted |
comment:2 by , 16 years ago
Description: | modified (diff) |
---|---|
Summary: | GeoJSON regexes doesn't accept leading and trailing whitespace → GeoJSON regexes doesn't accept leading and trailing whitespace or GeometryCollections |
comment:3 by , 16 years ago
Has patch: | set |
---|---|
Needs tests: | set |
by , 16 years ago
Attachment: | geojson_regex.diff added |
---|
comment:4 by , 16 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:5 by , 16 years ago
Note:
See TracTickets
for help on using tickets.
(In [9392]) Fixed #9566 -- made GeoJSON regex more robust.