Географические потоки

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

Пример

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

Подкласс Feed

класс Feed

В дополнение к методам, предоставляемым базовым классом django.contrib.syndication.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( элемент )

Установите это, чтобы вернуть геометрию каждого элемента в потоке. Это может быть экземпляр 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 ©2020 All rights reserved