Alta de Fechas Geográficas

GeoDjango tiene su propia clase hija de Feed que puede incluir información de ubicación en los formatos RSS/Atom según las normas Simple GeoRSS o W3C Geo . Debido a que la API de syndication de GeoDjango es un superset de Django, consulte la documentación de syndication de Django </ref/contrib/syndication> para detalles sobre el uso general.

Ejemplo

Referencia de la API

Clase hija Feed

class Feed[fuente]

Además de los métodos proporcionados por la clase base django.contrib.syndication.views.Feed, la clase Feed de GeoDjango proporciona las siguientes sobrescrituras. Tenga en cuenta que estas sobrescrituras pueden realizarse de varias maneras:

from django.contrib.gis.feeds import Feed


class MyFeed(Feed):
    # First, as a class attribute.
    geometry = ...
    item_geometry = ...

    # Also a function with no arguments
    def geometry(self): ...

    def item_geometry(self): ...

    # And as a function with a single argument
    def geometry(self, obj): ...

    def item_geometry(self, item): ...
geometry(obj)

Toma el objeto devuelto por get_object() y devuelve la geometría del feed. Normalmente es una instancia GEOSGeometry, o puede ser un tupla para representar un punto o una caja. Por ejemplo:

class ZipcodeFeed(Feed):
    def geometry(self, obj):
        # Can also return: `obj.poly`, and `obj.poly.centroid`.
        return obj.poly.extent  # tuple like: (X0, Y0, X1, Y1).
item_geometry(item)

Establezca esto para devolver la geometría para cada item en el feed. Esto puede ser una instancia GEOSGeometry o una tupla que representa las coordenadas de un punto o una caja de contorno. Por ejemplo:

class ZipcodeFeed(Feed):
    def item_geometry(self, obj):
        # Returns the polygon.
        return obj.poly

Clases hijas de SyndicationFeed

Están disponibles las siguientes clases hijas de django.utils.feedgenerator.SyndicationFeed :

class GeoRSSFeed[fuente]
class GeoAtom1Feed[fuente]
class W3CGeoFeed[fuente]

Nota

Los formatos RSS/Atom W3C Geo solo admiten geometrías de campo `PointField`~.