Logo_Access_global_380x114Favicon_Access_global_180x180Logo_Access_global_380x114Logo_Access_global_380x114
  • Home
  • University
    • Destellos formativos
  • Labs
  • TV
  • Secciones
    • El mundo de Access
    • Explorando VBA
      • Artículos sobre VBA
      • Un trocito de código
    • Entrevistas
      • Profesionales de Access
    • El rincón de Excel
    • Bases de datos
      • MS SQL
      • MySQL
      • postgreSQL
      • SQLite
    • Clases magistrales
    • Utilidades hechas con Access
  • Access en el mundo
  • ¿Quiénes somos?
  • Cómo colaborar
  • Eventos
✕
            No hay resultados Mostrar todos los resultados
            VBA: Google Maps API calcular la distancia entre dos coordenadas (Vincenty)
            12/05/2022
            VBA: AllowAdditions o como controlar la entrada de datos de un formulario
            14/05/2022
            Mostrar todos

            VBA: Google Maps API calcular la distancia entre dos coordenadas (Pitágoras)

            Publicado por Alba Salvá
            Categorías
            • Destellos formativos
            Etiquetas
            • API
            • Coordenadas
            • Google maps
            • Pitágoras
            • VBA
            Option Compare Database
            Option Explicit
            
            Function DistPitagoras(Lat1 As Double, Lon1 As Double, Lat2 As Double, Lon2 As Double) As Double
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            ' Fuente            : https://access-global.net/vba-google-maps-api-calcular-la-distancia-entre-dos-coordenadas-pitagoras
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            ' Título            : DistPitagoras
            ' Autor original    : Alba Salvá
            ' Fecha             : desconocido
            ' Propósito         : Conocer la distancia entre dos puntos geográficos suponiendo que ambos puntos están en un plano, lo que nos permite
            '                     utilizar el conocido "Teorema de Pitágoras".
            ' Retorno           : devuelve la distancia en km
            ' Argumento/s       : La sintaxis del procedimiento o función consta del siguiente argumento:
            '                     Parte            Modo           Descripción
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            '                     LatitudInicio    Obligatorio    Latitud del punto 1
            '                     LongitudInicio   Obligatorio    Longitud del punto 1
            '                     LatitudFin       Obligatorio    Latitud del punto 2
            '                     LongitudFin      Obligatorio    Longitud del punto s
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            'Test               : Para adaptar este código en tu aplicación puedes basarte en este procedimiento test. Copiar el bloque siguiente al
            '                    portapapeles y pega en el editor de VBA. Descomentar la línea que nos interese y pulsar F5 para ver su funcionamiento.
            '
            'Sub DistPitagoras_test()
            '
            'Debug.print DistPitagoras(latitudorigen, longitudorigen, latituddestino, longituddestino)
            '
            'End Sub
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            Dim Dist As Double
            Dim P1 As Double, P2 As Double
            
            P1 = (Lat1 - Lat2) ^ 2
            P2 = (Lon1 - Lon2) ^ 2
            
            DistPitagoras = (Sqr(P1 + P2)) * 100
            
            End Function
            ¡Ver en el repositorio!
            Compartir
            19
            Alba Salvá
            Alba Salvá

            Entradas relacionadas

            28/09/2023

            VBA: fecha y hora extendidas


            Leer más
            27/09/2023

            VBA: Conversor de moneda


            Leer más
            26/09/2023

            VBA: Convertir macros a VBA


            Leer más

            1 Comment

            1. Alba Salvá dice:
              13/05/2022 a las 11:18 pm

              ‘ Versión mejorada con resultados con una mayor precisión.
              ‘ Esta modificación fue realizada en torno a los años 1985 -1987.
              ‘ Los parámetros de entrada son los mismos, la diferencia con la versión anterior estriba en que se incluyen cálculos modificadores para las distancias,
              ‘ en vez de usar un valor fijo.
              ‘Esta modificación permite realizar cálculos más precisos en distancias mucho mayores.

              El código está incluido en el fichero descargable desde GitHub

              Function DistPitagoras(Lat1 As Double, Lon1 As Double, Lat2 As Double, Lon2 As Double) As Double

              Dim Dist As Double
              Dim P1 As Double, P2 As Double
              Dim M As Double, Z As Double

              Const PI = 3.14159265358979
              Const D As Double = 111.12 'Distancia en Km de 1 grado de latitud en el ecuador (aproximado)

              P1 = ((Lat1 - Lat2) * D) ^ 2 'Calculamos el cuadrado de la distancia entre latitudes

              M = ((Lat1 + Lat2) / 2) * (PI / 180)'Convertimos a Radianes la media de las latitudes
              Z = Cos(M) * D ' Calculamos el corrector para la distancia de las longitudes

              P2 = ((Lon1 - Lon2) * Z) ^ 2 'Calculamos el cuadrado de la distancia de las longitudes

              DistPitagoras = (Sqr(P1 + P2)) 'Devolvemos el resultado con la fórmula de Pitágoras

              End Function

              Responder

            Deja una respuesta Cancelar la respuesta

            Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

            ETIQUETAS

            Access API ComboBox Consultas CountOfDeclarationLines CountOfLines CStr Date DCount Diseño DoCmd Excel Fecha FileSystemObject Filtros Formulario Formularios Funciones Funciones de dominio GetFolder Informes Left Listbox Mid Mod Módulos Node ProcCountLines Procedimientos ProcOfLine References Replace Ribbon Right RunCommand Split Tablas Tempvars TreeView TwipsFromFont VBA VBE VBIDE With...End With WizHook

            ÚLTIMAS ENTRADAS

            • 0
              VBA: fecha y hora extendidas
              28/09/2023
            • 0
              VBA: Conversor de moneda
              27/09/2023

            ¿QUIERES PUBLICITAR TU EMPRESA AQUÍ?

            SUSCRÍBETE A NUESTRO
            NEWSLETTER

            Recibirás información puntual sobre el mundo de Access y VBA

            ¡Próximamente!

            Promovemos el uso de Access y de la programación en VBA en todo el mundo

            Centro de conocimiento


            Toda la sabiduría de los mejores programadores de Access y VBA a tu alcance.

            Legal

            Política de privacidad

            Condiciones de uso

            Condiciones del redactor

            ®Access Global 2021 | All right reserved
                      No hay resultados Mostrar todos los resultados