3
©ôÁg–
  ã               @   sJ   d dl mZmZ d dlmZ d dlmZ G dd„ deƒZG dd„ dƒZdS )	é    )ÚCoordTransformÚSpatialReference)ÚSerializerDoesNotExist)Ú
Serializerc                   sP   e Zd ZdZ‡ fdd„Zdd„ Zdd„ Z‡ fdd	„Zd
d„ Z‡ fdd„Z	‡  Z
S )r   z<
    Convert a queryset to GeoJSON, http://geojson.org/
    c                s^   t ƒ jƒ  | jjdd ƒ| _| jjddƒ| _| jd k	rZ| jd k	rZ| j| jkrZ| j| jf•| _d S )NÚgeometry_fieldÚsridiæ  )ÚsuperÚ_init_optionsZjson_kwargsÚpopr   r   Úselected_fields)Úself)Ú	__class__© úd/var/www/tester-filtro-web/env/lib/python3.6/site-packages/django/contrib/gis/serializers/geojson.pyr	   
   s    
zSerializer._init_optionsc             C   s$   | j ƒ  i | _| jjd| j ƒ d S )Nzg{"type": "FeatureCollection", "crs": {"type": "name", "properties": {"name": "EPSG:%d"}}, "features": [)r	   Ú_ctsÚstreamÚwriter   )r   r   r   r   Ústart_serialization   s
    zSerializer.start_serializationc             C   s   | j jdƒ d S )Nz]})r   r   )r   r   r   r   Úend_serialization   s    zSerializer.end_serializationc                sF   t ƒ j|ƒ d | _| jd krBx$|jjD ]}t|dƒr&|j| _P q&W d S )NZ	geom_type)r   Ústart_objectÚ	_geometryr   Ú_metaÚfieldsÚhasattrÚname)r   ÚobjÚfield)r   r   r   r      s    

zSerializer.start_objectc             C   sº   d| j dœ}| jd ks d| jkrBd|d krB|jjj|ƒ|d d< | jr®| jj| jkrœ| jj| jkr†t| jƒ}t	| jj
|ƒ| j| jj< | jj| j| jj ƒ t| jjƒ|d< nd |d< |S )NZFeature)ÚtypeÚ
propertiesÚpkr   Zgeometry)Ú_currentr   r   r   Zvalue_to_stringr   r   r   r   r   ÚsrsZ	transformÚevalZgeojson)r   r   Údatar!   r   r   r   Úget_dump_object&   s    

zSerializer.get_dump_objectc                s,   |j | jkr|j|ƒ| _ntƒ j||ƒ d S )N)r   r   Zvalue_from_objectr   r   Úhandle_field)r   r   r   )r   r   r   r%   :   s    zSerializer.handle_field)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r	   r   r   r   r$   r%   Ú__classcell__r   r   )r   r   r      s   
r   c               @   s   e Zd Zdd„ ZdS )ÚDeserializerc             O   s   t dƒ‚d S )Nz*geojson is a serialization-only serializer)r   )r   ÚargsÚkwargsr   r   r   Ú__init__B   s    zDeserializer.__init__N)r&   r'   r(   r.   r   r   r   r   r+   A   s   r+   N)	Zdjango.contrib.gis.gdalr   r   Zdjango.core.serializers.baser   Zdjango.core.serializers.jsonr   ZJSONSerializerr+   r   r   r   r   Ú<module>   s   ;