• 3.1
  • 3.2
  • 6.1
  • Версия документации: 5.0

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

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

Пример

Справочник API

Подкласс Feed

class Feed

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

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

Подклассы SyndictionFeed

Доступны следующие подклассы django.utils.feedgenerator.SyndictionFeed:

class GeoRSSFeed
class GeoAtom1Feed
class W3CGeoFeed

Примечание

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

Back to Top