地理的フィード—Djangoドキュメント

提供:Dev Guides
< DjangoDjango/docs/3.2.x/ref/contrib/gis/feeds
移動先:案内検索

地理的フィード

GeoDjangoには独自の Feed サブクラスがあり、 Simple GeoRSS または W3C 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 ジオメトリのみをサポートします。