Macro para calcular distancias entre 2 puntos
Tengo un código para generar el calculo de distancia ente 2 puntos, pero la api que ocupo ya me están cobrando, quisiera cambiarla por otra que ya tengo pero por más que he intentado no he podido integrar los datos de la nueva api.
Este es el código que ocupo actualmente:
Function Distancia_Ruta(Origen, Destino)
'Declaramos las variables a utilizar
Dim Url As String
Dim Consulta As String
Dim Peticion As Object
Dim Respuesta As Object
Dim iNodos As Object
'Aplicamos conversion de caracteres especiales (con la función Caracter_e) al Origen y Destino
Origen = Caracter_e(LCase(Origen))
Destino = Caracter_e(LCase(Destino))
'Componemos la url necesaria para realizar la petición de datos como una matriz
Url = "https://maps.googleapis.com/maps/api/distancematrix/xml?key="AQUI _PONER_TU_KEY_DE_GOOGLE&origins=" & Origen & "&destinations=" & Destino _
& "&mode=" ' por defecto la ruta es en coche, el resto de opciones serían:
'"mode=bicycling"- en bicicleta
'"mode=walking"- andando
Set Peticion = CreateObject("Microsoft.XMLHTTP")
Set Respuesta = CreateObject("Msxml2.DOMDocument.6.0")
Set iNodos = Respuesta.createNode(1, "xml", "")
'Realizamos la consulta
Peticion.Open "GET", Url, False
Peticion.send
Respuesta.LoadXML (Peticion.responseText)
Set iNodos = Respuesta.getElementsByTagName("distance")
'Extraemos la distancia y le damos formato
Distancia_Ruta = Format(Trim(Mid(iNodos(0).Text, 1, InStr(iNodos(0).Text, " "))) / 1000, "#,##0.00 "" """)
'Liberamos memoria
Set Peticion = Nothing
Set Respuesta = Nothing
Set iNodos = Nothing
End Function
Function Caracter_e(ByVal Cadena As String) As String
'Declaramos variables
Dim sDato As String
Dim sCadena As Long
Dim Contador As Long
Dim nItem As String
'Si encontramos un caracter especial, lo sustituimos
sCadena = Len(Cadena)
If sCadena > 0 Then
For Contador = 1 To sCadena
nItem = Mid$(Cadena, Contador, 1)
Select Case nItem
Case "Ñ"
nItem = "N"
Case "ñ"
nItem = "n"
Case "á"
nItem = "a"
Case "é"
nItem = "e"
Case "í"
nItem = "i"
Case "ó"
nItem = "o"
Case "ú"
nItem = "u"
Case "ç"
nItem = "c"
End Select
sDato = sDato & nItem
Next Contador
End If
Caracter_e = sDato
End Function
Necesito meter estos datos de la api que encontré, pero al hacer pruebas no me da el dato del calculo de la distancia entre los puntos, algo que si me da la API de Google.
[url=https://matrix.route.api.here.com<br%20/>/routing/7.2/calculatematrix.json<br%20/>?app_id={YOUR_APP_ID}<br%20/>&app_code={YOUR_APP_CODE}<br%20/>&start0=origen<br%20/>&destination0=destino<br%20/>&mode=fastest;car;traffic:disabled]https://matrix.route.api.here.com
/routing/7.2/calculatematrix.json
?app_id={YOUR_APP_ID}
&app_code={YOUR_APP_CODE}
&start0=origen
&destination0=destino
&mode=fastest;car;traffic:disabled[/url]
Alguien me podría apoyar a integrar estos datos al código que tengo arriba