Географические каналы

GeoDjango имеет собственный подкласс Feed, который может встраивать информацию о местоположении в RSS/Atom-ленты, отформатированные в соответствии со стандартами Simple GeoRSS или W3C Geo. Поскольку API синдикации GeoDjango является надмножеством API Django, пожалуйста, обратитесь к Django’s syndication documentation за подробностями общего использования.

Пример

Справочник по API

Feed Подкласс

class Feed[исходный код]

В дополнение к методам, предоставляемым базовым классом django.contrib.syndication.views.Feed, класс GeoDjango Feed предоставляет следующие переопределения. Обратите внимание, что эти переопределения могут быть сделаны несколькими способами:

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)

Принимает объект, возвращенный командой get_object(), и возвращает геометрию подачи. Обычно это экземпляр GEOSGeometry, или может быть кортеж для представления точки или коробки. Например:

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)

Установите это значение, чтобы вернуть геометрию для каждого элемента в подаче. Это может быть экземпляр GEOSGeometry, или кортеж, представляющий координаты точки или граничную область. Например:

class ZipcodeFeed(Feed):

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

SyndicationFeed Подклассы

Имеются следующие подклассы django.utils.feedgenerator.SyndicationFeed:

class GeoRSSFeed[исходный код]
class GeoAtom1Feed[исходный код]
class W3CGeoFeed[исходный код]

Примечание

W3C Geo форматированные фиды поддерживают только PointField геометрии.

Вернуться на верх