U
    ¡‹®g	  ã                   @   s‚   d dl mZ d dlmZ d dlmZmZ d dlmZm	Z	 d dl
mZ d dlmZmZ d dlmZ dd	efd
d„Zdefdd„ZdS )é    )Úapps)ÚGeometryField)ÚAsKMLÚ	Transform)Úrender_to_kmlÚrender_to_kmz)ÚFieldDoesNotExist)ÚDEFAULT_DB_ALIASÚconnections)ÚHttp404NFc                 C   s,  g }zt  ||¡}W n$ tk
r8   td||f ƒ‚Y nX |rzz|j |¡}t|tƒsZt‚W n tk
rx   tdƒ‚Y nX t	| }	|	j
jr¤|j |¡jt|ƒd}njg }|	j
jrÜ|j |¡jf d| t|dƒiŽ}
|d7 }n|j |¡ ¡ }
|
D ]}t||ƒj|_| |¡ qð|rt}nt}|dd|iƒS )	z‰
    This view generates KML for the given app label, model, and field name.

    The field name must be that of a geographic field.
    z?You must supply a valid app label and module name.  Got "%s.%s"zInvalid geometry field.©Úkmlz%s_4326iæ  Z_4326zgis/kml/placemarks.kmlZplaces)r   Z	get_modelÚLookupErrorr   Z_metaÚ	get_fieldÚ
isinstancer   r   r
   ÚfeaturesZhas_AsKML_functionZ_default_managerÚusingZannotater   Zhas_Transform_functionr   ÚallÚgetattrr   Úappendr   r   )ÚrequestÚlabelÚmodelÚ
field_nameÚcompressr   Z
placemarksÚklassÚfieldÚ
connectionÚqsÚmodÚrender© r!   úE/tmp/pip-unpacked-wheel-ye1bytdm/django/contrib/gis/sitemaps/views.pyr   
   s:    
ÿ
r   c                 C   s   t | |||d|dS )zD
    Return KMZ for the given app label, model, and field name.
    T)r   r   r   )r   r   r   r   r   r!   r!   r"   Úkmz9   s    r#   )Zdjango.appsr   Zdjango.contrib.gis.db.modelsr   Z&django.contrib.gis.db.models.functionsr   r   Zdjango.contrib.gis.shortcutsr   r   Zdjango.core.exceptionsr   Z	django.dbr	   r
   Zdjango.httpr   r   r#   r!   r!   r!   r"   Ú<module>   s   /