0

Mit PowerShell die Distanz zwischen 2 Orten feststellen

Die Distanz zwischen 2 Orten lässt sich mit PowerShell einfach von Google Maps auslesen.

Dazu lese ich den Quellcode von „https://www.google.com/maps?saddr=[VON]&daddr= [ZU] “ und suche nach den Werten ‚km\‘ für Distanz und ‚Min.\‘ für die Zeit.

Beispiel

Die Distanz von Linz nach Wien.

https://www.google.com/maps?saddr=4020 Linz&daddr=1010 Wien
Quellcode
Get-Distance Ausgabe

PowerShell Function „Get-Distance“

FUNCTION Get-Distance{
    [cmdletbinding()]
    Param(
        [Parameter(Position=0,Mandatory)]
        [string]$From,
        [Parameter(Position=1,Mandatory)]
        [string]$To
    )

    $URL = "https://www.google.com/maps?saddr=$From&daddr=$To"
    $wc = new-object system.net.webclient
    $wr = $wc.DownloadString($URL)
    $wc.Dispose()
    $SRC = $wr.Split('[]')
    foreach ($x in $SRC){
        IF ((!$distance) -and ($x -like '*km\"*')){
            $distance = $($SRC[$($SRC.IndexOf($x))])
            $distance = [regex]::Matches($distance, "\d+")[0].value
        }
        IF (($distance) -and (!$time) -and ($x -like '*Min.\"*')){
            $time = $($SRC[$($SRC.IndexOf($x))])
            $time = [regex]::Matches($time, "\d+")[0].value
        }
        IF (($distance) -and ($time)){
            $output =  New-Object Psobject -Property @{
                "from" = $From
                "to" = $To
                "meter" =  $distance
                "seconds" = $time
            }
            break
        }
    }
    return $($output | Select-Object from, to, meter, seconds)
}

Get-Distance "4020 Linz" "1010 Wien"

Johannes Groiss

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

code