
    hv                         S SK r S SKrS SKrS SKrS SKJr  S SKrS SKr\" 5         \R                  " S5      r
\R                  R                  S5        S SKJrJr  S rS rS	S jrg)
    N)load_dotenvAPI_KEY_GOOGLEz
../scripts)	comercioscategorias_establecimientosc                    Sn[         R                  " U 5      n[         R                  " U5      n[         R                  " X -
  5      n[         R                  " X1-
  5      n[         R                  " US-  5      S-  [         R                  " U5      [         R                  " U5      -  [         R                  " US-  5      S-  -  -   n	S[         R                  " [         R
                  " U	5      [         R
                  " SU	-
  5      5      -  n
XJ-  $ )uD   Calcula la distancia en kilómetros entre dos coordenadas (lat/lon).i        )mathradianssincosatan2sqrt)lat1lon1lat2lon2Rphi1phi2	delta_phidelta_lambdaacs              jc:\Users\julio\OneDrive\Documentos\Trabajo\IdeasFrscas\Cabanna\notebooks\../scripts\google_places_utils.pycalcular_distancia_haversiner      s    A<<D<<DT[)I<<,LQ1$txx~'FR^abRbIcghIh'hhA	DJJtyy|TYYq1u%566A5L    c                 R    [         R                  " 5        H  u  pX;   d  M  Us  $    g)uD   Devuelve la categoría principal del comercio usando el diccionario.u   Sin categoría)r   items)comercio	categorialista_comercioss      r   obtener_categoriar#   "   s*    &A&G&G&I"	& 'J r   c                    [         R                  " [        S9n/ n[         GH  n UR	                  X@US-  S9n/ nU(       GaL  [        UR                  S/ 5      5       H  u  pU	R                  S5      n
U	R                  S	5      nU	R                  S
0 5      R                  S0 5      R                  S5      nU	R                  S
0 5      R                  S0 5      R                  S5      nU(       a  U(       d  M  [        U S   U S   X5      nX::  d  M  [        U5      nSU SU 3nUR                  US-   XXXU/5        M     UR                  S5      nU(       a+  [        R                  " S5        UR	                  X@US-  US9nOO
U(       a  GML  UR                  U5        GM     [        R                   " U/ SQS9$ ! [
         a  n[        SU SU 35         SnAGM  SnAff = f)u  
Busca establecimientos alrededor de unas coordenadas, usando todos los tipos de comercios definidos.
Devuelve un DataFrame con la información y clasificación.

Args:
    coordenadas (tuple): (lat, lon)
    radius_km (float): Radio en kilómetros

Returns:
    pd.DataFrame
)keyi  )querylocationradiusz
Error con z: Nresultsnameformatted_addressgeometryr'   latlngr   r	   zhttps://www.google.com/maps?q=,next_page_tokenr   )r&   r'   r(   
page_token)IDzNombre de establecimientoComerciou
   Categoría	DomiciliolatitudlongitudzLiga de Google Maps)columns)
googlemapsClientapi_keyr   places	Exceptionprint	enumerategetr   r#   appendtimesleepextendpd	DataFrame)coordenadas	radius_kmgmapsresultados_totalesr    
resultadoseestablecimientos_localidadidxlugarnombre	direccionr-   r.   	distanciar!   ligar0   s                     r   "obtener_establecimientos_localidadrS   *   s    '*EI	HS\_cScdJ
 &("'
y"(EF
6*!II&9:	ii
B/33JCGGNii
B/33JCGGN#8QUVY\b	) 1( ;I;C5#GD.55a9SW7  G$ )nn->?O

1"\\W`cgWg  uD\  E
1 j4 	!!"<=G J <<* 5  E  	Jxj1#./	s   F<<
G#GG#)r   )r
   rA   pandasrD   r8   dotenvr   ossysgetenvr:   pathr@   tipos_comerciosr   r   r   r#   rS    r   r   <module>r\      sT         	 
 
))$
%   B7r   