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.
PowerShell Function „Get-DistanceTracelTime“
FUNCTION Get-DistanceTravelTime{
[cmdletbinding()]
Param(
[Parameter(Position=0,Mandatory)]
[string]$From,
[Parameter(Position=1,Mandatory)]
[string]$To
)
Write-Host "[i] search location data for $($to)" -ForegroundColor Yellow
$wr = $(((Invoke-WebRequest "https://www.google.com/maps?saddr=$($from)&daddr=$($to)" -UseBasicParsing -SessionVariable WebSession -UserAgent $strWebAgent).RawContent).Split('[]') | ?{$_} | %{$_ -replace ' '})[1000..1200]
$count = 0
$distance = $false
$time = $false
foreach ($row in $wr){
IF ((!$distance) -and ($row -like '*km\"*')){
$distance = $($wr[$count])
$time = $($wr[$count+2])
$distance = [regex]::Matches($distance, "\d+")[0].value
$time = [regex]::Matches($time, "\d+")[0].value
}
IF (($distance) -and ($time)){
$output = New-Object Psobject -Property @{
"from" = $from
"to" = $to
"distance" = $distance
"time" = $time
}
break
}
$count++
}
return $($output | Select-Object from, to, distance, time)
}
Get-DistanceTravelTime "4020 Linz" "1010 Wien"