======================
GeoDjango's admin site
======================

.. module:: django.contrib.gis.admin
    :synopsis: GeoDjango's extensions to the admin site.

``GeoModelAdmin``
=================

.. class:: GeoModelAdmin

    .. attribute:: default_lon

    The default center longitude.

    .. attribute:: default_lat

    The default center latitude.

    .. attribute:: default_zoom

    The default zoom level to use.  Defaults to 4.

    .. attribute:: extra_js

    Sequence of URLs to any extra JavaScript to include.

    .. attribute:: map_template

    Override the template used to generate the JavaScript slippy map.
    Default is ``'gis/admin/openlayers.html'``.

    .. attribute:: map_width

    Width of the map, in pixels.  Defaults to 600.

    .. attribute:: map_height

    Height of the map, in pixels.  Defaults to 400.

    .. attribute:: openlayers_url

    Link to the URL of the OpenLayers JavaScript.  Defaults to
    ``'https://cdnjs.cloudflare.com/ajax/libs/openlayers/2.13.1/OpenLayers.js'``.

    .. attribute:: modifiable

    Defaults to ``True``.  When set to ``False``, disables editing of
    existing geometry fields in the admin.

    .. note::

        This is different from adding the geometry field to
        :attr:`~django.contrib.admin.ModelAdmin.readonly_fields`,
        which will only display the WKT of the geometry. Setting
        ``modifiable=False``, actually displays the geometry in a map,
        but disables the ability to edit its vertices.

``OSMGeoAdmin``
===============

.. class:: OSMGeoAdmin

    A subclass of :class:`GeoModelAdmin` that uses a Spherical Mercator projection
    with `OpenStreetMap <https://www.openstreetmap.org/>`_ street data tiles.
    See the :ref:`OSMGeoAdmin introduction <osmgeoadmin-intro>`
    in the tutorial for a usage example.
