
    \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    W/var/www/html/kml_chatgpt/mouzaenv/lib/python3.13/site-packages/shapely/geometry/geo.pyr   r      sI    +eRZZ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    lTL4,EF"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
^FF6N((*	4R5FGG.y99	g	R&''	l	""]+,,	l	""]+,,	i	r-(+R->qr-BCC	l	""]+,,	'	'r-011	n	$B}4EF4EqdAabE]4EFGG	*	*#%66,#;<#;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   