3
(h=	                 @   s   d dl mZ 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 )    )unicode_literals)apps)GeometryField)AsKML	Transform)render_to_kmlrender_to_kmz)FieldDoesNotExist)DEFAULT_DB_ALIASconnections)Http404NFc             C   s0  g }yt j||}W n$ tk
r8   td||f Y nX |rzy|jj|}t|tsZtW n tk
rx   tdY nX t	| }	|	j
jr|jj|jt|d}nng }|	j
jr|jj|jf d| t|di}
|d7 }n|jj|j }
x$|
D ]}t||j|_|j| qW |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-install-q3hcpn_q/Django/django/contrib/gis/sitemaps/views.pyr      s8    


r   c             C   s   t | |||d|dS )zO
    This view returns KMZ for the given app label, model, and field name.
    T)r   r   )r   )r   r   r   r   r   r!   r!   r"   kmz;   s    r#   )
__future__r   Zdjango.appsr   Z#django.contrib.gis.db.models.fieldsr   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   /