def render(self, data, accepted_media_type=None, renderer_context=None): collection = collections.as_feature(data) try: features = collection['features'] except KeyError: features = [collection] template = loader.get_template(self.template_name) return template.render({'features': features})
def render(self, data, accepted_media_type=None, renderer_context=None): """Returns *data* encoded as GeoJSON.""" data = collections.as_feature(data) try: return data.geojson except AttributeError: return super(GeoJSONRenderer, self).render( data, accepted_media_type, renderer_context)
def render(self, data, accepted_media_type=None, renderer_context=None): collection = collections.as_feature(data) try: features = collection['features'] except KeyError: features = [collection] template = loader.get_template(self.template_name) return template.render(Context({'features': features}))
def render(self, data, accepted_media_type=None, renderer_context=None): """Returns *data* encoded as GeoJSON.""" if isinstance(data, list): data = collections.as_feature(data) data['name'] = renderer_context['view'].layer for index, features in enumerate(data['features']): data['features'][index]['name'] = renderer_context['view'].layer return mapbox_vector_tile.encode(data)
def to_python(self, value): if value in self.empty_values: return None sref = None # Work with a single GeoJSON geometry or a Feature. value = json.loads(value) if '"Feature",' in value else value if isinstance(value, collections.Mapping): feat = sc.as_feature(value) value = json.dumps(feat.get('geometry') or value) sref = feat.srs # Handle a comma delimited extent. elif list(value).count(',') == 3: value = Envelope(value.split(',')).polygon.ExportToWkt() try: geom = gdal.OGRGeometry(value, srs=getattr(sref, 'wkt', None)) except (gdal.OGRException, TypeError, ValueError): raise forms.ValidationError(self.error_messages['invalid_geom']) if not geom.srs: geom.srid = self.srid or self.widget.map_srid return geom
def to_python(self, value): if value in self.empty_values: return None sref = None # Work with a single GeoJSON geometry or a Feature. value = json.loads(value) if '"Feature"' in value else value if isinstance(value, collections.Mapping): feat = sc.as_feature(value) value = json.dumps(feat.get('geometry') or value) sref = feat.srs # Handle a comma delimited extent. elif list(value).count(',') == 3: value = Envelope(value.split(',')).polygon.ExportToWkt() try: geom = gdal.OGRGeometry(value, srs=getattr(sref, 'wkt', None)) except (gdal.GDALException, TypeError, ValueError): raise forms.ValidationError(self.error_messages['invalid_geom'], code='invalid_geom') if not geom.srs: geom.srid = self.srid or self.widget.map_srid return geom
def test_as_feature(self): self.assertIsInstance(as_feature(dict(self.lc['layer'])), FeatureCollection) self.assertIsInstance(as_feature(dict(self.lc)), LayerCollection)