Ë
    ~ìqj  ã                   ó”   — d Z ddlZddlmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ ddlmZ dd	lmZ dd
lmZmZ d„ Zd„ Zdd„Zd„ Zd„ Zy)z.Geometry factories based on the geo interface.é    N)ÚGeometryTypeError)ÚGeometryCollection)Ú
LineString)ÚMultiLineString)Ú
MultiPoint)ÚMultiPolygon)ÚPoint)Ú
LinearRingÚPolygonc                 ó¤   — | €yt        | t        t        t        j                  f«      r(t        | «      dk(  ryt        t        t        | «      «      S y)z;Identify if coordinates or subset of coordinates are empty.Tr   F)	Ú
isinstanceÚlistÚtupleÚnpÚndarrayÚlenÚallÚmapÚ_is_coordinates_empty)Úcoordinatess    úP/var/www/html/truck-me/venv/lib/python3.12/site-packages/shapely/geometry/geo.pyr   r      sF   € àÐØä�+¤¤e¬R¯Z©ZÐ8Ô9Üˆ{Ó˜qÒ ØÜ”3Ô,¨kÓ:Ó;Ð;àó    c                 óÒ   — | dk(  r
t        «       S | dk(  r
t        «       S | dk(  r
t        «       S | dk(  r
t        «       S | dk(  r
t	        «       S | dk(  r
t        «       S t        d| ›�«      ‚)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                 óH   — ||f||f| |f| |fg}|s|ddd…   }t        |«      S )z=Return a rectangular polygon with configurable normal vector.Néÿÿÿÿ)r   )ÚminxÚminyÚmaxxÚmaxyÚccwÚcoordss         r   Úboxr+   .   s:   € à�Tˆl˜T 4˜L¨4°¨,¸¸t¸ÐE€FÙØ™˜"˜‘ˆÜ�6‹?Ðr   c           	      óì  — t        | d«      r| j                  }n| }|j                  d«      j                  «       }|dk(  r$|d   }|j                  d«      j                  «       }d|v rt	        |d   «      rt        |«      S |dk(  rt        |d   «      S |dk(  rt        |d   «      S |dk(  rt        |d   «      S |d	k(  rt        |d   d
   |d   dd «      S |dk(  rt        |d   «      S |dk(  rt        |d   «      S |dk(  r$t        |d   D �cg c]  }|d
   |dd g‘Œ c}«      S |dk(  r3|j                  dg «      D �cg c]  }t        |«      ‘Œ }}t        |«      S t        d|›�«      ‚c c}w c c}w )aX  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Ü.¨yÓ9Ð9Ø	�gÒ	Ü�R˜Ñ&Ó'Ð'Ø	�lÒ	"Ü˜"˜]Ñ+Ó,Ð,Ø	�lÒ	"Ü˜"˜]Ñ+Ó,Ð,Ø	�iÒ	Ü�r˜-Ñ(¨Ñ+¨R°Ñ->¸q¸rÐ-BÓCÐCØ	�lÒ	"Ü˜"˜]Ñ+Ó,Ð,Ø	Ð'Ò	'Ü˜r -Ñ0Ó1Ð1Ø	�nÒ	$Ü°B°}Ñ4EÖF¨q˜a ™d A a b Eš]ÒFÓGÐGØ	Ð*Ò	*Ø#%§6¡6¨,¸Ó#;Ö<˜a”�q•Ð<ˆÐ<Ü! %Ó(Ð(äÐ"9¸)¸Ð GÓHÐHùò Gùâ<s   ÄE,Ä?E1c                 ó   — | j                   S )aµ  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   