地理信息源 — Django 文档

来自菜鸟教程
Django/docs/3.2.x/ref/contrib/gis/feeds
跳转至:导航、​搜索

地理提要

GeoDjango 有自己的 Feed 子类,可以将位置信息嵌入到根据 Simple GeoRSSW3C Geo 标准格式化的 RSS/Atom 提要中。 由于 GeoDjango 的联合 API 是 Django 的超集,请参阅 Django 的联合文档 了解一般用法的详细信息。

示例

API 参考

Feed 子类

class 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(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


SyndicationFeed 子类

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

class GeoRSSFeed
class GeoAtom1Feed
class W3CGeoFeed

笔记

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