diff options
Diffstat (limited to 'lib/python2.7/site-packages/django/contrib/gis/admin/options.py')
-rw-r--r-- | lib/python2.7/site-packages/django/contrib/gis/admin/options.py | 139 |
1 files changed, 0 insertions, 139 deletions
diff --git a/lib/python2.7/site-packages/django/contrib/gis/admin/options.py b/lib/python2.7/site-packages/django/contrib/gis/admin/options.py deleted file mode 100644 index 7e79be1..0000000 --- a/lib/python2.7/site-packages/django/contrib/gis/admin/options.py +++ /dev/null @@ -1,139 +0,0 @@ -from django.contrib.admin import ModelAdmin -from django.contrib.gis.admin.widgets import OpenLayersWidget -from django.contrib.gis.gdal import OGRGeomType -from django.contrib.gis.db import models - -class GeoModelAdmin(ModelAdmin): - """ - The administration options class for Geographic models. Map settings - may be overloaded from their defaults to create custom maps. - """ - # The default map settings that may be overloaded -- still subject - # to API changes. - default_lon = 0 - default_lat = 0 - default_zoom = 4 - display_wkt = False - display_srid = False - extra_js = [] - num_zoom = 18 - max_zoom = False - min_zoom = False - units = False - max_resolution = False - max_extent = False - modifiable = True - mouse_position = True - scale_text = True - layerswitcher = True - scrollable = True - map_width = 600 - map_height = 400 - map_srid = 4326 - map_template = 'gis/admin/openlayers.html' - openlayers_url = 'http://openlayers.org/api/2.11/OpenLayers.js' - point_zoom = num_zoom - 6 - wms_url = 'http://vmap0.tiles.osgeo.org/wms/vmap0' - wms_layer = 'basic' - wms_name = 'OpenLayers WMS' - wms_options = {'format': 'image/jpeg'} - debug = False - widget = OpenLayersWidget - - @property - def media(self): - "Injects OpenLayers JavaScript into the admin." - media = super(GeoModelAdmin, self).media - media.add_js([self.openlayers_url]) - media.add_js(self.extra_js) - return media - - def formfield_for_dbfield(self, db_field, **kwargs): - """ - Overloaded from ModelAdmin so that an OpenLayersWidget is used - for viewing/editing 2D GeometryFields (OpenLayers 2 does not support - 3D editing). - """ - if isinstance(db_field, models.GeometryField) and db_field.dim < 3: - request = kwargs.pop('request', None) - # Setting the widget with the newly defined widget. - kwargs['widget'] = self.get_map_widget(db_field) - return db_field.formfield(**kwargs) - else: - return super(GeoModelAdmin, self).formfield_for_dbfield(db_field, **kwargs) - - def get_map_widget(self, db_field): - """ - Returns a subclass of the OpenLayersWidget (or whatever was specified - in the `widget` attribute) using the settings from the attributes set - in this class. - """ - is_collection = db_field.geom_type in ('MULTIPOINT', 'MULTILINESTRING', 'MULTIPOLYGON', 'GEOMETRYCOLLECTION') - if is_collection: - if db_field.geom_type == 'GEOMETRYCOLLECTION': collection_type = 'Any' - else: collection_type = OGRGeomType(db_field.geom_type.replace('MULTI', '')) - else: - collection_type = 'None' - - class OLMap(self.widget): - template = self.map_template - geom_type = db_field.geom_type - - wms_options = '' - if self.wms_options: - wms_options = ["%s: '%s'" % pair for pair in self.wms_options.items()] - wms_options = ', %s' % ', '.join(wms_options) - - params = {'default_lon' : self.default_lon, - 'default_lat' : self.default_lat, - 'default_zoom' : self.default_zoom, - 'display_wkt' : self.debug or self.display_wkt, - 'geom_type' : OGRGeomType(db_field.geom_type), - 'field_name' : db_field.name, - 'is_collection' : is_collection, - 'scrollable' : self.scrollable, - 'layerswitcher' : self.layerswitcher, - 'collection_type' : collection_type, - 'is_generic' : db_field.geom_type == 'GEOMETRY', - 'is_linestring' : db_field.geom_type in ('LINESTRING', 'MULTILINESTRING'), - 'is_polygon' : db_field.geom_type in ('POLYGON', 'MULTIPOLYGON'), - 'is_point' : db_field.geom_type in ('POINT', 'MULTIPOINT'), - 'num_zoom' : self.num_zoom, - 'max_zoom' : self.max_zoom, - 'min_zoom' : self.min_zoom, - 'units' : self.units, #likely shoud get from object - 'max_resolution' : self.max_resolution, - 'max_extent' : self.max_extent, - 'modifiable' : self.modifiable, - 'mouse_position' : self.mouse_position, - 'scale_text' : self.scale_text, - 'map_width' : self.map_width, - 'map_height' : self.map_height, - 'point_zoom' : self.point_zoom, - 'srid' : self.map_srid, - 'display_srid' : self.display_srid, - 'wms_url' : self.wms_url, - 'wms_layer' : self.wms_layer, - 'wms_name' : self.wms_name, - 'wms_options' : wms_options, - 'debug' : self.debug, - } - return OLMap - -from django.contrib.gis import gdal -if gdal.HAS_GDAL: - # Use the official spherical mercator projection SRID on versions - # of GDAL that support it; otherwise, fallback to 900913. - if gdal.GDAL_VERSION >= (1, 7): - spherical_mercator_srid = 3857 - else: - spherical_mercator_srid = 900913 - - class OSMGeoAdmin(GeoModelAdmin): - map_template = 'gis/admin/osm.html' - num_zoom = 20 - map_srid = spherical_mercator_srid - max_extent = '-20037508,-20037508,20037508,20037508' - max_resolution = '156543.0339' - point_zoom = num_zoom - 6 - units = 'm' |