mirror of
https://github.com/django/django.git
synced 2025-09-18 06:59:12 +00:00
Lines in the docs files were manually adjusted to conform to the 79 columns limit per line (plus newline), improving readability and consistency across the content.
90 lines
2.5 KiB
Plaintext
90 lines
2.5 KiB
Plaintext
================
|
|
Geographic Feeds
|
|
================
|
|
|
|
.. module:: django.contrib.gis.feeds
|
|
:synopsis: GeoDjango's framework for generating spatial feeds.
|
|
|
|
GeoDjango has its own :class:`Feed` subclass that may embed location
|
|
information in RSS/Atom feeds formatted according to either the `Simple
|
|
GeoRSS`__ or `W3C Geo`_ standards. Because GeoDjango's syndication API is a
|
|
superset of Django's, please consult :doc:`Django's syndication documentation
|
|
</ref/contrib/syndication>` for details on general usage.
|
|
|
|
.. _W3C Geo: https://www.w3.org/2003/01/geo/
|
|
|
|
__ https://www.ogc.org/standard/georss/
|
|
|
|
Example
|
|
=======
|
|
|
|
API Reference
|
|
=============
|
|
|
|
``Feed`` Subclass
|
|
-----------------
|
|
|
|
.. class:: Feed
|
|
|
|
In addition to methods provided by the
|
|
:class:`django.contrib.syndication.views.Feed` base class, GeoDjango's
|
|
``Feed`` class provides the following overrides. Note that these overrides
|
|
may be done in multiple ways::
|
|
|
|
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): ...
|
|
|
|
.. method:: geometry(obj)
|
|
|
|
Takes the object returned by ``get_object()`` and returns the *feed's*
|
|
geometry. Typically this is a ``GEOSGeometry`` instance, or can be a tuple
|
|
to represent a point or a box. For example::
|
|
|
|
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).
|
|
|
|
.. method:: item_geometry(item)
|
|
|
|
Set this to return the geometry for each *item* in the feed. This can be a
|
|
``GEOSGeometry`` instance, or a tuple that represents a point coordinate or
|
|
bounding box. For example::
|
|
|
|
class ZipcodeFeed(Feed):
|
|
def item_geometry(self, obj):
|
|
# Returns the polygon.
|
|
return obj.poly
|
|
|
|
``SyndicationFeed`` Subclasses
|
|
------------------------------
|
|
|
|
The following :class:`django.utils.feedgenerator.SyndicationFeed` subclasses
|
|
are available:
|
|
|
|
.. class:: GeoRSSFeed
|
|
|
|
.. class:: GeoAtom1Feed
|
|
|
|
.. class:: W3CGeoFeed
|
|
|
|
.. note::
|
|
|
|
`W3C Geo`_ formatted feeds only support
|
|
:class:`~django.contrib.gis.db.models.PointField` geometries.
|