# Geo

Este módulo contiene funciones para el cálculo de distancias.

y una función para la validación de coordenadas:

  • validate_coords

# Haversine

# Métodos disponibles

  • calculate_distance

# calculate_distance

def calculate_distance(lat, lon, type_measure='mts'):
    ...

La función calculate_distance espera los siguientes parámetros:

  • lat: un array con la Latitud.
  • lon: un array con la Longitud.
  • type_measure: la medida de longitud para la respuesta solicitada:
    • mts
    • kms

por defecto es: metros (mts)

# Un ejemplo:







 



 


from app.ext.geo import calculate_distance
...

origin = [4.6565, -74.564654]
destiny = [4.6748, -74.05485]

result_in_mts = calculate_distance(origin, destiny)
print("result in mts:", result_in_mts)

# Otherwise
result_in_kms = calculate_distance(origin, destiny, 'kms')
print("result in kms:", result_in_kms)

salida:

>>> result in mts: 56536.4
>>> result in kms: 56.54

# geohash

# Métodos disponibles

  • decode_exactly
  • decode
  • encode

# decode_exactly

def decode_exactly(geohash):
    ...

La función decode_exactly espera un (1) parámetro:

  • geohash: un string con el geohash válido.

# Un ejemplo:





 



from app.ext.geo import decode_exactly
...

geo_hash_to_decode = "d2g69bx1jb1m89u4"
result = decode_exactly(geo_hash_to_decode)

print("decode decode_exactly:", result)

salida:

>>> decode decode_exactly: (4.661122299994531, -74.09292170004846, 8.185452315956354e-11, 1.6370904631912708e-10)

# decode

def decode(geohash):
    ...

La función decode espera un (1) parámetro:

  • geohash: un string con el geohash válido.

# Un ejemplo:






 


from app.ext.geo import decode
...

geo_hash_to_decode = "d2g69bx1jb1m89u4"

result = decode(geo_hash_to_decode)
print("decode geohash:", result)

salida:

>>> decode geohash: ('4.6611223', '-74.0929217')

# encode

def encode(latitude, longitude, precision=12):
    ...

La función encode espera los siguientes parámetros:

  • lat: un float con la Latitud.
  • lon: un float con la Longitud.
  • precision: la precisión para la respuesta solicitada:

# Un ejemplo:







 



 


from app.ext.geo import encode
...

lat = 4.6611223
lon = -74.0929217

result = encode(lat, lon)
print("geohash encode:", result)

# Otherwise using precision
result = encode(lat, lon, 16)
print("geohash encode using precision:", result)

salida:

>>> geohash encode: d2g69bx1jb1m
>>> geohash encode using precision: d2g69bx1jb1m89u4

# validate_coords

def validate_coords(cx=None, cy=None):
    ...

# Más información

Para mas información consulte: