
    g                     ^    d dl Z d dlmZmZ d dlmZ d dlmZ  G d de      Z G d d      Z	y)	    N)CoordTransformSpatialReferenceSerializerDoesNotExist)
Serializerc                   H     e Zd ZdZ fdZd Zd Z fdZd Z fdZ	 xZ
S )r   z<
    Convert a queryset to GeoJSON, http://geojson.org/
    c                    t         |           | j                  j                  dd       | _        | j                  j                  dd       | _        | j                  j                  dd      | _        | j                  F| j                  9| j                  | j                  vr g | j                  | j                  | _        y y y y )Ngeometry_fieldid_fieldsridi  )super_init_optionsjson_kwargspopr
   r   r   selected_fields)self	__class__s    ~/var/www/python.vincentserveurtest.ovh/public_html/venv/lib/python3.12/site-packages/django/contrib/gis/serializers/geojson.pyr   zSerializer._init_options   s    "..223CTJ((,,Z>$$((6	  ,##/##4+?+??#OT%9%9#O4;N;N#OD  @ 0 -    c                     | j                          i | _        | j                  j                  d| j                  z         y )Nzg{"type": "FeatureCollection", "crs": {"type": "name", "properties": {"name": "EPSG:%d"}}, "features": [)r   _ctsstreamwriter   r   s    r   start_serializationzSerializer.start_serialization   s8    	#yy)	
r   c                 :    | j                   j                  d       y )Nz]})r   r   r   s    r   end_serializationzSerializer.end_serialization"   s    $r   c                     t         |   |       d | _        | j                  ;|j                  j
                  D ]!  }t        |d      s|j                  | _         y  y y )N	geom_type)r   start_object	_geometryr
   _metafieldshasattrnamer   objfieldr   s      r   r    zSerializer.start_object%   sU    S!&))5+.*/**D' * 'r   c                 D   d| j                   |j                  nt        || j                         | j                  d}| j                  d| j                  v r2d|d   vr+|j
                  j                  j                  |      |d   d<   | j                  r| j                  j                  | j                  k7  r| j                  j                  | j                  vrVt        | j                        }t        | j                  j                  |      | j                  | j                  j                  <   | j                  j                  | j                  | j                  j                            t        j                  | j                  j                         |d<   |S d |d<   |S )NFeature)typeid
propertiespkr-   geometry)r   r.   getattr_currentr   r"   value_to_stringr!   r   r   r   r   srs	transformjsonloadsgeojson)r   r'   datar3   s       r   get_dump_objectzSerializer.get_dump_object/   sE    MM1#&&wsDMM7R--
   (DD4H4H,H$|,,'*yy||'C'CC'HDt$>>~~""dii/ >>&&dii7*4995C5C**C6DIIdnn112 ((4>>3F3F)GH#zz$..*@*@AD   $Dr   c                     |j                   | j                  k(  r|j                  |      | _        y t        |   ||       y )N)r%   r
   value_from_objectr!   r   handle_fieldr&   s      r   r<   zSerializer.handle_fieldH   s6    ::,,,"44S9DNG e,r   )__name__
__module____qualname____doc__r   r   r   r    r9   r<   __classcell__)r   s   @r   r   r      s,    
P
 2- -r   r   c                       e Zd Zd Zy)Deserializerc                     t        d      )Nz*geojson is a serialization-only serializerr   )r   argskwargss      r   __init__zDeserializer.__init__P   s    $%QRRr   N)r=   r>   r?   rG    r   r   rC   rC   O   s    Sr   rC   )
r5   django.contrib.gis.gdalr   r   django.core.serializers.baser   django.core.serializers.jsonr   JSONSerializerrC   rH   r   r   <module>rM      s,     D ? ED- D-NS Sr   