o a@sddlZddlmZddlmZddlmZddlmZm Z ddl m Z ddl m Z edZGd d d e ZGd d d eZGd ddeZdS)N)settings)gdal) json_regex) GEOSException GEOSGeometry)Widget) translationzdjango.contrib.giscsVeZdZdZdZdZdZdZdZdZ dZ dd d Z d d Z d dZ fddZZS)BaseGeometryWidgetzc The base class for rich geometry widgets. Render a map using the WKT of the geometry. GEOMETRYiXiFNcCs8i|_dD] }t|||j|<q|r|j|dSdS)N) geom_typemap_srid map_width map_height display_raw)attrsgetattrupdateselfrkeyrB/usr/lib/python3/dist-packages/django/contrib/gis/forms/widgets.py__init__s zBaseGeometryWidget.__init__cC|r|jSdSNr )wktrvaluerrr serialize"zBaseGeometryWidget.serializec CsFzt|WStttfy"}ztd||WYd}~dSd}~ww)Nz,Error creating geometry from value '%s' (%s))rr ValueError TypeErrorloggererror)rrerrrrr deserialize%s zBaseGeometryWidget.deserializec st|||}|rt|tr||}|rJ|jrJ|j|jkrJz |j}||j|}Wnt j yI}zt d|j|j|WYd}~nd}~wwt |jdj}|||j|d|dd|||dkrkdn|tjtd|pvi|S) Nzrr s r cs:eZdZdZdZGdddZddZfddZZS) OpenLayersWidgetzgis/openlayers.htmlic@seZdZddiZdZdS)zOpenLayersWidget.Mediaall)z7https://cdnjs.cloudflare.com/ajax/libs/ol3/4.6.5/ol.csszgis/css/ol3.css)z6https://cdnjs.cloudflare.com/ajax/libs/ol3/4.6.5/ol.jszgis/js/OLMapWidget.jsN)rArBrCcssjsrrrrMediaQsrLcCrr)jsonrrrrr ]r!zOpenLayersWidget.serializecs0t|}|rt|r|jdkr|j|_|S)Nr )r1r'rmatchrr5)rrgeomr>rrr'`s zOpenLayersWidget.deserialize) rArBrCrFrrLr r'rGrrr>rrHMs  rHcs2eZdZdZdZdZdZdZd fdd ZZ S) OSMWidgetz3 An OpenLayers/OpenStreetMap-based widget. zgis/openlayers-osm.html/ Ncs<tdD] }t|||j|<q|r|j|dSdS)N) default_lon default_lat default_zoom)r1rrrrrr>rrrqs zOSMWidget.__init__r@) rArBrCrDrFrTrUrVrrGrrr>rrPhsrP)logging django.confrdjango.contrib.gisrdjango.contrib.gis.geometryrdjango.contrib.gis.geosrrdjango.forms.widgetsr django.utilsr getLoggerr$r rHrPrrrrs      @