地理位置 Feed

GeoDjango 有自己的 Feed 子类,可以根据 简单 GeoRSSW3C Geo 标准将位置信息嵌入到 RSS/Atom Feed 中。由于 GeoDjango 的联合播客 API 是 Django API 的超集,因此请参阅 Django 的联合播客文档 以了解一般用法。

示例

API 参考

Feed 子类

class 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 子类

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

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

注意

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

返回顶部