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

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

Пример

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

FeedПодкласс

класс 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( объект )

Принимает объект, возвращенный фидом,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( элемент )

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

class ZipcodeFeed(Feed):

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

SyndicationFeedПодклассы

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

класс GeoRSSFeed
класс GeoAtom1Feed
класс W3CGeoFeed

Примечание

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

Copyright ©2021 All rights reserved