
     h%                     l    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	dS )	    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                 6   t                                                       | j                            dd           | _        | j                            dd          | _        | j        ,| j        '| j        | j        vrg | j        | j        | _        d S d S d S d S )Ngeometry_fieldsridi  )super_init_optionsjson_kwargspopr
   r   selected_fields)self	__class__s    b/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/django/contrib/gis/serializers/geojson.pyr   zSerializer._init_options   s    ".223CTJJ$((66	 ,#/#4+???#OT%9#O4;N#OD   	 -,//??    c                     |                                   i | _        | j                            d| j        z             d S )Nzg{"type": "FeatureCollection", "crs": {"type": "name", "properties": {"name": "EPSG:%d"}}, "features": [)r   _ctsstreamwriter   r   s    r   start_serializationzSerializer.start_serialization   sN    	#y)	
 	
 	
 	
 	
r   c                 :    | j                             d           d S )Nz]})r   r   r   s    r   end_serializationzSerializer.end_serialization!   s    $r   c                     t                                          |           d | _        | j        .|j        j        D ]#}t          |d          r|j        | _         d S "d S d S )N	geom_type)r   start_object	_geometryr
   _metafieldshasattrnamer   objfieldr   s      r   r   zSerializer.start_object$   sy    S!!!&)  5+.. */*D'EE '& r   c                 (   d| j         d}| j        	d| j        v r2d|d         vr(|j        j                            |          |d         d<   | j        r| j        j        | j        k    r| j        j        | j        vr@t          | j                  }t          | j        j
        |          | j        | j        j        <   | j                            | j        | j        j                            t          j        | j        j                  |d<   nd |d<   |S )NFeature)type
propertiespkr+   geometry)_currentr   r!   r,   value_to_stringr    r   r   r   r   srs	transformjsonloadsgeojson)r   r&   datar0   s       r   get_dump_objectzSerializer.get_dump_object.   s   -
 

  (DD4H,H,H$|,,,'*y|'C'CC'H'HDt$> 	$~"di// >&di77*4955C5C*C6 6DIdn12 ((4>3F)GHHH#z$.*@AAD#Dr   c                     |j         | j        k    r|                    |          | _        d S t	                                          ||           d S )N)r$   r
   value_from_objectr    r   handle_fieldr%   s      r   r9   zSerializer.handle_fieldF   sL    :,,,"44S99DNNNGG  e,,,,,r   )__name__
__module____qualname____doc__r   r   r   r   r6   r9   __classcell__)r   s   @r   r   r      s         	P 	P 	P 	P 	P
 
 
           0- - - - - - - - -r   r   c                       e Zd Zd ZdS )Deserializerc                      t          d          )Nz*geojson is a serialization-only serializerr   )r   argskwargss      r   __init__zDeserializer.__init__N   s    $%QRRRr   N)r:   r;   r<   rD    r   r   r@   r@   M   s(        S S S S Sr   r@   )
r2   django.contrib.gis.gdalr   r   django.core.serializers.baser   django.core.serializers.jsonr   JSONSerializerr@   rE   r   r   <module>rJ      s     D D D D D D D D ? ? ? ? ? ? E E E E E EB- B- B- B- B- B- B- B-JS S S S S S S S S Sr   