
    (ph                         S SK r S SKrS SKJr  S SKJr  S SKJr  S SKJ	r	J
r
  S SKJr  S SKJr  S SKJr  \ R"                  " S	5      r " S
 S\5      r " S S\5      r " S S\5      rg)    N)settings)gdal)
json_regex)GEOSExceptionGEOSGeometry)Widget)translation)RemovedInDjango51Warningzdjango.contrib.gisc                   ^   ^  \ rS rSrSrSrSrSrSrSr	Sr
SrSS	 jrS
 rS rU 4S jrSrU =r$ )BaseGeometryWidget   zW
The base class for rich geometry widgets.
Render a map using the WKT of the geometry.
GEOMETRY  X    F c                 4   0 U l         S H  n[        X5      U R                   U'   M     U(       a  SU;   d&  SU;   d   U R                  S:w  d  U R                  S:w  a  [        R
                  " S[        SS9  U(       a  U R                   R                  U5        g g )	N)	geom_typemap_srid	map_width
map_heightdisplay_rawr   r   r   r   zbThe map_height and map_width widget attributes are deprecated. Please use CSS to size map widgets.   )category
stacklevel)attrsgetattrr   r   warningswarnr
   update)selfr   keys      S/var/www/html/venv/lib/python3.13/site-packages/django/contrib/gis/forms/widgets.py__init__BaseGeometryWidget.__init__   s    
VC%d0DJJsO W u,0E~~$#%MM/1	 JJe$     c                 ,    U(       a  UR                   $ S$ Nr   )wktr!   values     r#   	serializeBaseGeometryWidget.serialize0   s    !uyy)r)r&   c                      [        U5      $ ! [        [        [        4 a   n[        R                  SX5         S nAg S nAff = f)Nz,Error creating geometry from value '%s' (%s))r   r   
ValueError	TypeErrorloggererror)r!   r+   errs      r#   deserializeBaseGeometryWidget.deserialize3   sA    	U&&z95 	ULLGTT	Us   
 A=Ac                 >  > [         TU ]  XU5      nU(       a&  [        U[        5      (       a  U R	                  U5      nU(       aU  UR
                  (       aD  UR
                  U R                  :w  a*   UR                  nUR                  U R                  5        Un[        R                  " U R                  S   5      R                  nUR!                  U R#                  U R                  USUR%                  SS5      -  U R'                  U5      US:X  a  SOU[(        R*                  [,        R.                  " 5       S.U=(       d    0 E5      5        U$ ! [        R                   a6  n[        R                  SUR
                  U R                  U5         S nANS nAff = f)	Nz<Error transforming geometry from srid '%s' to srid '%s' (%s)r   zgeodjango_%s-_UnknownGeometry)namemodule
serializedr   
STATIC_URLLANGUAGE_BIDI)superget_context
isinstancestrr4   sridr   ogr	transformr   GDALExceptionr1   r2   OGRGeomTyper   r;   r    build_attrsreplacer,   r   r>   r	   get_language_bidi)	r!   r;   r+   r   contextrE   r3   r   	__class__s	           r#   rA   BaseGeometryWidget.get_context:   sM   '%d59 Zs++$$U+EzzejjDMM9
))CMM$--0E $$TZZ%<=BB	

 ,t||C/EE"&.."7/8I/E9"*"5"5%0%B%B%D {	
 / )) LLV

	 s   2)E F&,FF)r   N)__name__
__module____qualname____firstlineno____doc__r   r   r   r   r   supports_3dtemplate_namer$   r,   r4   rA   __static_attributes____classcell__rM   s   @r#   r   r      sF    
 IHIJKKM%$*% %r&   r   c                   J   ^  \ rS rSrSrSr " S S5      rS rU 4S jrSr	U =r
$ )	OpenLayersWidgetb   zgis/openlayers.htmli  c                        \ rS rSrSS0rSrSrg)OpenLayersWidget.Mediaf   all)z-https://cdn.jsdelivr.net/npm/ol@v7.2.2/ol.csszgis/css/ol3.css)z1https://cdn.jsdelivr.net/npm/ol@v7.2.2/dist/ol.jszgis/js/OLMapWidget.js N)rP   rQ   rR   rS   cssjsrW   ra   r&   r#   Mediar^   f   s     

r&   rd   c                 ,    U(       a  UR                   $ S$ r(   )jsonr*   s     r#   r,   OpenLayersWidget.serializer   s    "uzz**r&   c                    > [         TU ]  U5      nU(       a<  [        R                  " U5      (       a!  U R                  S:w  a  U R                  Ul        U$ )Nr   )r@   r4   r   matchr   rD   )r!   r+   geomrM   s      r#   r4   OpenLayersWidget.deserializeu   s@    w"5)J$$U++0EDIr&   ra   )rP   rQ   rR   rS   rV   r   rd   r,   r4   rW   rX   rY   s   @r#   r[   r[   b   s&    )MH

 

+ r&   r[   c                   @   ^  \ rS rSrSrSrSrSrSrS	U 4S jjr	Sr
U =r$ )
	OSMWidget}   z+
An OpenLayers/OpenStreetMap-based widget.
zgis/openlayers-osm.html   /      c                    > [         TU ]  5         S H  n[        X5      U R                  U'   M     U(       a  U R                  R	                  U5        g g )N)default_londefault_latdefault_zoom)r@   r$   r   r   r    )r!   r   r"   rM   s      r#   r$   OSMWidget.__init__   sE    AC%d0DJJsO BJJe$ r&   ra   rO   )rP   rQ   rR   rS   rT   rV   rs   rt   ru   r$   rW   rX   rY   s   @r#   rm   rm   }   s(     .MKKL% %r&   rm   )loggingr   django.confr   django.contrib.gisr   django.contrib.gis.geometryr   django.contrib.gis.geosr   r   django.forms.widgetsr   django.utilsr	   django.utils.deprecationr
   	getLoggerr1   r   r[   rm   ra   r&   r#   <module>r      sZ        # 2 ? ' $ =			/	0P Pf) 6%  %r&   