Geographic Feeds

GeoDjango有自己的Feed子类,可以根据简单GeoRSSW3C地理标准格式化的RSS / Atom Feed中嵌入位置信息。 由于GeoDjango的联合API是Django的超集,因此有关一般用法的详细信息,请参阅Django’s syndication documentation

Example

API Reference

Feed Subclass

Feed[source]

除了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()返回的对象,并返回feed的几何。 通常这是一个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)

将此设置为返回Feed中每个项目的几何形状 这可以是GEOSGeometry实例,或表示点坐标或边界框的元组。 像这样:

class ZipcodeFeed(Feed):

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

SyndicationFeed Subclasses

以下django.utils.feedgenerator.SyndicationFeed子类可用:

GeoRSSFeed[source]
GeoAtom1Feed[source]
W3CGeoFeed[source]

W3C Geo格式化Feed仅支持PointField几何图形。