ó
    gzi  ã                   ó–   • S r SSKrSSKJr  SSKJr  SSKJr  SSK	J
r
  SSKJr  SSKJr  SS	KJr  SS
KJrJr  S rS rSS jrS rS rg)z.Geometry factories based on the geo interface.é    N)ÚGeometryTypeError)ÚGeometryCollection)Ú
LineString)ÚMultiLineString)Ú
MultiPoint)ÚMultiPolygon)ÚPoint)Ú
LinearRingÚPolygonc                 ó²   • U c  g[        U [        [        [        R                  45      (       a)  [        U 5      S:X  a  g[        [        [        U 5      5      $ g)z;Identify if coordinates or subset of coordinates are empty.Tr   F)	Ú
isinstanceÚlistÚtupleÚnpÚndarrayÚlenÚallÚmapÚ_is_coordinates_empty)Úcoordinatess    ÚQ/home/mande/repo/quber/.venv/lib/python3.13/site-packages/shapely/geometry/geo.pyr   r      sI   € àÑØä�+¤¤e¬R¯Z©ZÐ8×9Ñ9Üˆ{Ó˜qÓ ØÜ”3Ô,¨kÓ:Ó;Ð;àó    c                 óà   • U S:X  a
  [        5       $ U S:X  a
  [        5       $ U S:X  a
  [        5       $ U S:X  a
  [        5       $ U S:X  a
  [	        5       $ U S:X  a
  [        5       $ [        SU < 35      e)z'Return empty counterpart for geom_type.ÚpointÚ
multipointÚ
linestringÚmultilinestringÚpolygonÚmultipolygonúUnknown geometry type: )r	   r   r   r   r   r   r   )Ú	geom_types    r   Ú_empty_shape_for_no_coordinatesr"      sv   € à�GÓÜ‹wˆØ	�lÓ	"Ü‹|ÐØ	�lÓ	"Ü‹|ÐØ	Ð'Ó	'ÜÓ Ð Ø	�iÓ	Ü‹yÐØ	�nÓ	$Ü‹~ÐäÐ"9¸)¹Ð GÓHÐHr   c                 óJ   • X!4X#4X4X4/nU(       d  USSS2   n[        U5      $ )z=Return a rectangular polygon with configurable normal vector.Néÿÿÿÿ)r   )ÚminxÚminyÚmaxxÚmaxyÚccwÚcoordss         r   Úboxr+   .   s2   € àˆl˜T˜L¨4¨,¸¸ÐE€FÞØ™˜"˜‘ˆÜ�6‹?Ðr   c           	      ó"  • [        U S5      (       a  U R                  nOU nUR                  S5      R                  5       nUS:X  a$  US   nUR                  S5      R                  5       nSU;   a  [	        US   5      (       a  [        U5      $ US:X  a  [        US   5      $ US:X  a  [        US   5      $ US:X  a  [        US   5      $ US	:X  a  [        US   S
   US   SS 5      $ US:X  a  [        US   5      $ US:X  a  [        US   5      $ US:X  a&  [        US    Vs/ s H  o3S
   USS /PM     sn5      $ US:X  a6  UR                  S/ 5       Vs/ s H  n[        U5      PM     nn[        U5      $ [        SU< 35      es  snf s  snf )aô  Return a new, independent geometry with coordinates copied from the context.

Changes to the original context will not be reflected in the geometry
object.

Parameters
----------
context :
    a GeoJSON-like dict, which provides a "type" member describing the type
    of the geometry and "coordinates" member providing a list of coordinates,
    or an object which implements __geo_interface__.

Returns
-------
Geometry object

Examples
--------
Create a Point from GeoJSON, and then create a copy using __geo_interface__.

>>> from shapely.geometry import shape
>>> context = {'type': 'Point', 'coordinates': [0, 1]}
>>> geom = shape(context)
>>> geom.geom_type == 'Point'
True
>>> geom.wkt
'POINT (0 1)'
>>> geom2 = shape(geom)
>>> geom == geom2
True

Ú__geo_interface__ÚtypeÚfeatureÚgeometryr   r   r   Ú
linearringr   r   é   Nr   r   r   ÚgeometrycollectionÚ
geometriesr    )Úhasattrr-   ÚgetÚlowerr   r"   r	   r   r
   r   r   r   r   Úshaper   r   )ÚcontextÚobr!   ÚcÚgÚgeomss         r   r8   r8   6   s±  € ôB ˆwÐ+×,Ñ,Ø×&Ñ&‰àˆØ—‘�v“×$Ñ$Ó&€Ià�IÓà�
‰^ˆØ—F‘F˜6“N×(Ñ(Ó*ˆ	à˜ÓÔ4°R¸Ñ5F×GÑGÜ.¨yÓ9Ð9Ø	�gÓ	Ü�R˜Ñ&Ó'Ð'Ø	�lÓ	"Ü˜"˜]Ñ+Ó,Ð,Ø	�lÓ	"Ü˜"˜]Ñ+Ó,Ð,Ø	�iÓ	Ü�r˜-Ñ(¨Ñ+¨R°Ñ->¸q¸rÐ-BÓCÐCØ	�lÓ	"Ü˜"˜]Ñ+Ó,Ð,Ø	Ð'Ó	'Ü˜r -Ñ0Ó1Ð1Ø	�nÓ	$Ü°B°}Ò4EÓFÒ4E¨q ™d A a b E›]Ñ4EÑFÓGÐGØ	Ð*Ó	*Ø#%§6¡6¨,¸Ô#;Ó<Ò#;˜a”�q–Ñ#;ˆÐ<Ü! %Ó(Ð(äÐ"9¸)¹Ð GÓHÐHùò Gùâ<s   Ä"FÅFc                 ó   • U R                   $ )ay  Return a GeoJSON-like mapping.

Input should be a Geometry or an object which implements __geo_interface__.

Parameters
----------
ob : geometry or object
    An object which implements __geo_interface__.

Returns
-------
dict

Examples
--------
>>> from shapely.geometry import mapping, Point
>>> pt = Point(0, 0)
>>> mapping(pt)
{'type': 'Point', 'coordinates': (0.0, 0.0)}

)r-   )r:   s    r   Úmappingr?   y   s   € ð, ×ÑÐr   )T)Ú__doc__Únumpyr   Úshapely.errorsr   Úshapely.geometry.collectionr   Úshapely.geometry.linestringr   Ú shapely.geometry.multilinestringr   Úshapely.geometry.multipointr   Úshapely.geometry.multipolygonr   Úshapely.geometry.pointr	   Úshapely.geometry.polygonr
   r   r   r"   r+   r8   r?   © r   r   Ú<module>rK      s@   ðÙ 4ã å ,Ý :Ý 2Ý <Ý 2Ý 6Ý (ß 8ò
òIô$ò@IóF r   