§
     �’jÕ  ã            
       óú   — d dl mZmZmZmZmZ dZdededededef
d„Zdd
„Z	de
eef         dee
eef                  deee
eef                           defd„Zde
eef         dee
eef                  dedefd„Zd	S )é    )ÚasinÚcosÚradiansÚsinÚsqrtg3333°MXAÚlon1Úlat1Úlon2Úlat2Úreturnc                 ó:  — t          t          | |||g¦  «        \  } }}}|| z
  }||z
  }t          |dz  ¦  «        dz  t          |¦  «        t          |¦  «        z  t          |dz  ¦  «        dz  z  z   }dt	          t          |¦  «        ¦  «        z  }t          |z  S )a!  
    Calculate distance between two points on Earth using Haversine formula.

    Args:
        lon1: longitude of first point
        lat1: latitude of first point
        lon2: longitude of second point
        lat2: latitude of second point

    Returns:
        distance in meters
    é   )Úmapr   r   r   r   r   ÚMEAN_EARTH_RADIUS)r   r	   r
   r   ÚdlonÚdlatÚaÚcs           úEC:\Projects\DSCons\.venv\Lib\site-packages\qdrant_client\local\geo.pyÚgeo_distancer      s–   € õ !¥¨4°°t¸TÐ*BÑCÔCÑ€Dˆ$��dà�$‰;€DØ�$‰;€DÝˆD�1‰H‰Œ˜Ñ�S ™YœY­¨T©¬Ñ2µS¸À¹±]´]ÀaÑ5GÑGÑG€AØ	�D•�a‘”‰MŒMÑ€Aå˜qÑ Ð ó    Nc                  ó  — dddœ} dddœ}dddœ}t          | d         | d	         | d         | d	         ¦  «        d
k     sJ ‚t          | d         | d	         |d         |d	         ¦  «        dk    sJ ‚t          | d         | d	         |d         |d	         ¦  «        dk     sJ ‚t          | d         | d	         |d         |d	         ¦  «        dk    sJ ‚t          | d         | d	         |d         |d	         ¦  «        dk     sJ ‚d S )Ngé·¯ÏB@g�(í¾àK@)ÚlonÚlatgëâ6À[À¿gÅþ²{òÀI@g�Âõ(\Ï*@gÃõ(\�BJ@r   r   g      ð?i Ÿ$ i@¬' i j iP- )r   )ÚmoscowÚlondonÚberlins      r   Útest_geo_distancer       s  € Ø WÐ-Ð-€FØ WÐ-Ð-€FØ WÐ-Ð-€Få˜˜uœ v¨e¤}°f¸U´mÀVÈEÄ]ÑSÔSÐVYÒYÐYÐYÐYå˜˜uœ v¨e¤}°f¸U´mÀVÈEÄ]ÑSÔSÐVaÒaÐaÐaÐaÝ˜˜uœ v¨e¤}°f¸U´mÀVÈEÄ]ÑSÔSÐVaÒaÐaÐaÐaÝ˜˜uœ v¨e¤}°f¸U´mÀVÈEÄ]ÑSÔSÐVaÒaÐaÐaÐaÝ˜˜uœ v¨e¤}°f¸U´mÀVÈEÄ]ÑSÔSÐVaÒaÐaÐaÐaÐaÐar   ÚpointÚexteriorÚ	interiorsc                 óÌ   — d}t          | |d¦  «        rPd}d}|t          |¦  «        k     r5|s3t          | ||         d¦  «        rd}|dz  }|t          |¦  «        k     r|¯3|sd}|S )NFTr   é   )Úin_ringÚlen)r   r    r!   Úinside_polyÚin_holeÚks         r   Úboolean_point_in_polygonr)   -   s�   € ð
 €Kåˆu�h Ñ%Ô%ð ØˆØˆØ•#�i‘.”.Ò Ð ¨Ð Ý�u˜i¨œl¨EÑ2Ô2ð Ø�Ø�‰FˆAð •#�i‘.”.Ò Ð ¨Ð ð ð 	ØˆKàÐr   ÚptÚringÚignore_boundaryc                 ó.  — d}|d         d         |t          |¦  «        dz
           d         k    rH|d         d         |t          |¦  «        dz
           d         k    r|dt          |¦  «        dz
  …         }t          |¦  «        dz
  }t          dt          |¦  «        ¦  «        D ]ì}||         d         }||         d         }||         d         }||         d         }	| d         ||z
  z  ||| d         z
  z  z   |	| d         |z
  z  z   dk    o5|| d         z
  || d         z
  z  dk    o|| d         z
  |	| d         z
  z  dk    }
|
r| c S || d         k    |	| d         k    k    o#| d         ||z
  | d         |z
  z  |	|z
  z  |z   k     }|r| }|}Œí|S )NFr   r#   )r%   Úrange)r*   r+   r,   Ú	is_insideÚjÚiÚxiÚyiÚxjÚyjÚon_boundaryÚ	intersects               r   r$   r$   A   sØ  € ð €IØˆA„wˆq„z�T�#˜d™)œ) a™-Ô(¨Ô+Ò+Ð+°°Q´¸´
¸dÅ3ÀtÁ9Ä9ÈqÁ=Ô>QÐRSÔ>TÒ0TÐ0TØ�A�˜D™	œ	 A™Ð%Ô&ˆÝˆD‰	Œ	�A‰€AÝ�1•c˜$‘i”iÑ Ô ð ð ˆØ�!ŒW�QŒZˆØ�!ŒW�QŒZˆØ�!ŒW�QŒZˆØ�!ŒW�QŒZˆà�ŒU�b˜2‘gÑ  r¨B¨q¬E¡zÑ!2Ñ2°R¸2¸a¼5À2¹:Ñ5FÑFÈ!ÒKð 3Ø�r˜!”u‘*  b¨¤e¡Ñ,°Ò1ð3à�r˜!”u‘*  b¨¤e¡Ñ,°Ò1ð 	ð
 ð 	'Ø&Ð&Ð&Ð&Ð&Ø˜2˜aœ5’j b¨2¨a¬5¢jÒ1ð 
ØˆqŒE�R˜"‘W  A¤¨¡Ñ,°°R±Ñ8¸2Ñ=Ò=ð 	ð ð 	&Ø%˜ˆIØˆˆØÐr   )r   N)Úmathr   r   r   r   r   r   Úfloatr   r   ÚtupleÚlistÚboolr)   r$   © r   r   ú<module>r>      s=  ðØ .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .ð Ð ð!�uð ! Eð !°ð !¸eð !Èð !ð !ð !ð !ð2
bð 
bð 
bð 
bðØ�˜�Ôðà�5˜ ˜Ô&Ô'ðð �D˜˜u e˜|Ô,Ô-Ô.ðð 
ð	ð ð ð ð(Øˆe�UˆlÔðØ#'¨¨e°U¨lÔ(;Ô#<ðØOSðà	ðð ð ð ð ð r   