
    h                     p    d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 dZ
 G d de      Z G d	 d
e      Zy)    )
ModelAdmin)OpenLayersWidget)models)OGRGeomType)Mediai  c                        e Zd ZdZdZdZdZdZdZg Z	dZ
dZdZdZdZdZdZdZdZdZdZdZdZd	Zd
ZdZe
dz
  ZdZdZdZddiZdZe Z!e" fd       Z# fdZ$d Z% xZ&S )GeoModelAdminz
    The administration options class for Geographic models. Map settings
    may be overloaded from their defaults to create custom maps.
    r      F   TiX  i  i  zgis/admin/openlayers.htmlzFhttps://cdnjs.cloudflare.com/ajax/libs/openlayers/2.13.1/OpenLayers.js   z&http://vmap0.tiles.osgeo.org/wms/vmap0basiczOpenLayers WMSformatz
image/jpegc                 b    t         |   t        | j                  g| j                  z         z   S )z-Injects OpenLayers JavaScript into the admin.)js)supermediar   openlayers_urlextra_js)self	__class__s    c/var/www/html/ranktracker/api/venv/lib/python3.12/site-packages/django/contrib/gis/admin/options.pyr   zGeoModelAdmin.media/   s+     w}u)<)<(=(MNNN    c                     t        |t        j                        r5|j                  dk  r&| j	                  |      |d<    |j
                  di |S t        |   ||fi |S )z
        Overloaded from ModelAdmin so that an OpenLayersWidget is used
        for viewing/editing 2D GeometryFields (OpenLayers 2 does not support
        3D editing).
           widget )
isinstancer   GeometryFielddimget_map_widget	formfieldr   formfield_for_dbfield)r   db_fieldrequestkwargsr   s       r   r"   z#GeoModelAdmin.formfield_for_dbfield4   sb     h 4 45(,,:J#228<F8%8%%///707MfMMr   c                      j                   dv r8j                   dk(  rdn(t        j                   j                  dd            nd G  fdd j                        }|S )	z
        Return a subclass of the OpenLayersWidget (or whatever was specified
        in the `widget` attribute) using the settings from the attributes set
        in this class.
        )
MULTIPOINTMULTILINESTRINGMULTIPOLYGONGEOMETRYCOLLECTIONr*   AnyMULTI Nonec                      e Zd ZW j                  ZW j
                  ZdZW j                  rBW j                  j                         D  cg c]  }d|z  	 c}} Zddj                  e      z  Zi dW j                  dW j                  dW j                  dW j                  xs W j                  d	 eW j
                        d
W j                  dW dW j                   dW j"                  dW dW j
                  dk(  dW j
                  dv dW j
                  dv dW j
                  dv dW j$                  dW j&                  dW j(                  i dW j*                  dW j,                  dW j.                  dW j0                  dW j2                  dW j4                  d W j6                  d!W j8                  d"W j:                  d#W j<                  d$W j>                  d%W j@                  d&W jB                  d'W jD                  d(ed)W j                  Z#y*c c}} w )++GeoModelAdmin.get_map_widget.<locals>.OLMapr-   z%s: '%s'z, %sz, default_londefault_latdefault_zoomdisplay_wkt	geom_type
field_nameis_collection
scrollablelayerswitchercollection_type
is_genericGEOMETRYis_linestring)
LINESTRINGr(   
is_polygon)POLYGONr)   is_point)POINTr'   num_zoommax_zoommin_zoomunitsmax_resolution
max_extent
modifiablemouse_position
scale_text	map_width
map_height
point_zoomsriddisplay_sridwms_url	wms_layerwms_namewms_optionsdebugN)$__name__
__module____qualname__map_templatetemplate_namer5   rT   itemsjoinr1   r2   r3   rU   r4   r   namer8   r9   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   map_sridrP   rQ   rR   rS   params).0pairr:   r#   r7   r   s   00r   OLMapr0   P   s    --M **IK=A=M=M=S=S=UVTzD0V$tyy'=="t//"t//"  1 1" tzz=T-=-=	"
 [););<" hmm"  " doo"  !3!3" "?" h00J>"  !3!37X!X" h004OO" H..2II" DMM"  DMM!"" DMM#"$ %"& !$"5"5'"( doo)"* doo+", !$"5"5-". doo/"0 T^^1"2 doo3"4 doo5"6 7"8  1 19": 4<<;"< T^^="> DMM?"@ {A"B C"F Ws   Irb   )r5   r   replacer   )r   r#   rb   r:   r7   s   `` @@r   r    zGeoModelAdmin.get_map_widgetA   sm     !**.uu!!%99"'"-h.@.@.H.HRT.U"V$O+	 +	DKK +	X r   )'rV   rW   rX   __doc__r1   r2   r3   r4   rP   r   rC   rD   rE   rF   rG   rH   rI   rJ   rK   r9   r8   rL   rM   r^   rY   r   rN   rQ   rR   rS   rT   rU   r   r   propertyr   r"   r    __classcell__)r   s   @r   r	   r	   
   s     KKLKLHHHHENJJNJMJIJH.L]NAJ6GIH\*KEFO ON;r   r	   c                   .    e Zd ZdZdZeZdZdZedz
  Z	dZ
y)OSMGeoAdminzgis/admin/osm.html   z%-20037508,-20037508,20037508,20037508z156543.0339r   mN)rV   rW   rX   rY   rC   spherical_mercator_sridr^   rH   rG   rN   rF   r   r   r   rh   rh      s)    'LH&H8J"NAJEr   rh   N)django.contrib.adminr    django.contrib.gis.admin.widgetsr   django.contrib.gis.dbr   django.contrib.gis.gdalr   django.formsr   rk   r	   rh   r   r   r   <module>rq      s5    + = ( /  rJ rj- r   