Helpmij.nl
Helpmij.nl
Helpmij.nl

Quote

Weergeven resultaten 1 tot 7 van 7

Onderwerp: Bereken de afstand tussen twee locaties

  1. #1
    Junior Member
    Geregistreerd
    24 maart 2018
    Vraag is opgelost

    Bereken de afstand tussen twee locaties

    Vroeger kon ik met onderstaande code de afstand berekenen van twee locaties echter werkt dit niet meer.
    Weet iemand een andere oplossing om de afstand te kunnen berekenen?


    Code:
    Public Function Shortest(strOrigin As String, strDestination As String) As Variant    'meters
    Dim lngDistance As Long
    Dim objResult As Object
    Dim strResponseXML As String
    Dim strStatus As String
    
            With CreateObject("MSXML2.XMLHTTP")
                strURL3 = "http://maps.googleapis.com/maps/api/directions/xml?origin=" & strOrigin & "&destination=" & strDestination & "&alternatives=true&language=nl&units=metric&sensor=false"
                .Open "GET", strURL3, False 'am_2015
                .Send
                If .Status = 200 Then
                    strResponseXML = .ResponseText
                    With CreateObject("MSXML2.DOMDOCUMENT")
                        .LoadXML strResponseXML
                        strStatus = .SelectSingleNode("//status").Text
                        If strStatus = "OK" Then
                            Shortest = 9E+18
                            For Each objResult In .SelectNodes("//leg/distance/value")
                                lngDistance = CLng(objResult.Text)
                                If lngDistance < Shortest Then
                                    Shortest = lngDistance
                                End If
                            Next
                        Else
                            Shortest = strStatus
                        End If
                    End With
                Else
                    Shortest = "ERROR"
                End If
            End With
    End Function
    
    Public Function Fastest(strOrigin As String, strDestination As String) As Variant    'seconds
    Dim lngDuration As Long
    Dim objResult As Object
    Dim strResponseXML As String
    Dim strStatus As String
    
            With CreateObject("MSXML2.XMLHTTP")
                .Open "GET", "http://maps.googleapis.com/maps/api/directions/xml?origin=" & strOrigin & "&destination=" & strDestination & "&alternatives=true&language=nl&units=metric&sensor=false", False  'am_2015
                .Send
                If .Status = 200 Then
                    strResponseXML = .ResponseText
                    With CreateObject("MSXML2.DOMDOCUMENT")
                        .LoadXML strResponseXML
                        strStatus = .SelectSingleNode("//status").Text
                        If strStatus = "OK" Then
                            Fastest = 9E+18
                            For Each objResult In .SelectNodes("//leg/duration/value")
                                lngDuration = CLng(objResult.Text)
                                If lngDuration < Fastest Then
                                    Fastest = lngDuration
                                End If
                            Next
                        Else
                            Fastest = strStatus
                        End If
                    End With
                Else
                    Fastest = "ERROR"
                End If
            End With
            
    End Function

  2. #2
    Mega Senior
    Geregistreerd
    16 maart 2011
    Locatie
    Weert
    Je hebt sinds 2018 een API-key nodig.
    Zie https://www.helpmij.nl/forum/showthr...e-and-Duration

  3. #3
    Junior Member
    Geregistreerd
    24 maart 2018
    Ja was er al bang voor. Dan maar een account aanmaken.

  4. #4
    Mega Honourable Senior Member
    Geregistreerd
    6 juli 2010
    Locatie
    Eindhoven
    Als je heel veel afstanden moet berekenen, vooral van en naar 1 locatie heeft google een veel snellere en efficiëntere API dan deze voor eigenlijk incidenteel gebruik.
    "Ik geloof niet in een limiet van mijn kunnen,
    wel van mijn kennis"

  5. #5
    Junior Member
    Geregistreerd
    24 maart 2018
    O vertel

  6. #6
    Mega Honourable Senior Member
    Geregistreerd
    6 juli 2010
    Locatie
    Eindhoven
    Gisteren even onverwacht offline, maar zie hier:

    https://developers.google.com/maps/d...atrix/overview

    Je kan dan een enkel beginpunt en bijvoorbeeld 20 eindpunten opgeven. je krijgt dan afstanden en reistijden vanaf een enkel punt naar alle eindpunten.

    Let wel dit zijn reisafstanden, geen vogelvlucht, dus deur naar deur via openbare wegen e.d.
    "Ik geloof niet in een limiet van mijn kunnen,
    wel van mijn kennis"

  7. #7
    Junior Member
    Geregistreerd
    24 maart 2018
    Danku!
    Ik heb het geimplementeerd want hemelsbreed de afstand berekenen zegt niet zoveel ;-)

Berichtenregels

  • U mag geen nieuwe vragen starten.
  • U mag niet reageren op berichten.
  • U mag geen bijlagen versturen.
  • U mag uw berichten niet bewerken.
  •  
Helpmij.nl
Helpmij.nl

Helpmij.nl

Regels
Help

Helpmij.nl en business

Partners
Sponsoren