2 votos

Crear una GEOSGeometría a partir de una FeatureCollection en GeoDango

¿Es posible crear una GEOSGeometría a partir de una FeatureCollection(GeoJSON)? Por ejemplo GEOSGeometry(json.dumps(fc)) donde:

fc = { "type": "FeatureCollection",
"features": [
  { "type": "Feature",
    "geometry": {"type": "Point", "coordinates": [102.0, 0.5]},
    "properties": {"prop0": "value0"}
    },
  { "type": "Feature",
    "geometry": {
      "type": "LineString",
      "coordinates": [
        [102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0]
        ]
      },
    "properties": {
      "prop0": "value0",
      "prop1": 0.0
      }
    },
  { "type": "Feature",
     "geometry": {
       "type": "Polygon",
       "coordinates": [
         [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0],
           [100.0, 1.0], [100.0, 0.0] ]
         ]
     },
     "properties": {
       "prop0": "value0",
       "prop1": {"this": "that"}
       }
     }
   ]
 }

2voto

JD Isaacks Puntos 1831

Algo como esto hará lo que quieres:

import ast
from django.contrib.gis.geos import GeometryCollection, GEOSGeometry

def make_geometrycollection_from_featurecollection(feature_collection):
    geoms = []
    features = ast.literal_eval(feature_collection)
    for feature in features['features']:
        feature_geom = feature['geometry']
        geoms.append(GEOSGeometry(feature_geom))
    return GeometryCollection(tuple(geoms))

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X