
    h
                     V    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)	    )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                 J   t         |           | 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sridi  )super_init_optionsjson_kwargspopr
   r   selected_fields)self	__class__s    i/var/www/html/ranktracker/api/venv/lib/python3.12/site-packages/django/contrib/gis/serializers/geojson.pyr   zSerializer._init_options
   s    "..223CTJ$$((6	  ,1D1D1P##4+?+??#OT%9%9#O4;N;N#OD  @ 2Q,    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   sZ    S!&)) 5+.*/**D' 'r   c                    d| 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                        |d<   |S d |d<   |S )NFeature)type
propertiespkr+   geometry)_currentr   r!   r,   value_to_stringr    r   r   r   r   srs	transformevalgeojson)r   r&   datar0   s       r   get_dump_objectzSerializer.get_dump_object&   s   --
 !!)TT5I5I-ID..'*yy||'C'CC'HDt$>>~~""dii/>>&&dii7*4995C5CDNNDVDVX[5\DIIdnn112((4>>3F3F)GH#DNN$:$:;D   $Dr   c                     |j                   | j                  k(  r|j                  |      | _        y t        |   ||       y )N)r$   r
   value_from_objectr    r   handle_fieldr%   s      r   r8   zSerializer.handle_field:   s6    ::,,,"44S9DNG e,r   )__name__
__module____qualname____doc__r   r   r   r   r5   r8   __classcell__)r   s   @r   r   r      s,    P* (- -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__B   s    $%QRRr   N)r9   r:   r;   rC    r   r   r?   r?   A   s    Sr   r?   N)	django.contrib.gis.gdalr   r   django.core.serializers.baser   django.core.serializers.jsonr   JSONSerializerr?   rD   r   r   <module>rI      s'    D ? E8- 8-vS Sr   