]> apps.delaporte.us Git - dotfiles.git/blob - psmodules/house_shopping.psm1
Notes on CLI setup
[dotfiles.git] / psmodules / house_shopping.psm1
1
2 function Get-TravelTimes() {
3
4
5 }
6
7 $fuzzyUrl = "https://atlas.microsoft.com/search/fuzzy/json?&api-version=1.0&subscription-key={Your-Azure-Maps-Subscription-key}&language=en-US&query=pizza"
8
9 function Get-MapAddress() {
10 param(
11 [string]$address
12 )
13 $subKey = $env:AzMapsSubKey
14 $addyUrl = "https://atlas.microsoft.com/search/address/json?&subscription-key=$subKey&api-version=1.0&language=en-US&query=$address"
15 $result = Invoke-WebRequest $addyUrl
16 if($result.StatusCode -Eq 200){
17 return $result.Content | ConvertFrom-Json
18 }
19 return $result.StatusDescription
20 }
21
22 function Get-MapCoords() {
23 param(
24 [string]$address
25 )
26 $subKey = $env:AzMapsSubKey
27 $result = Get-MapAddress -Address $address
28 return $result.results.entryPoints[0].position
29 }
30
31 function Get-MapTravelPlan() {
32 param(
33 [string]$from_address,
34 [string]$to_address
35 )
36 $subKey = $env:AzMapsSubKey
37 $pos1 = Get-MapCoords -Address $from_address
38 $lat1 = $pos1.lat
39 $lon1 = $pos1.lon
40
41 $pos2 = Get-MapCoords -Address $to_address
42 $lat2 = $pos2.lat
43 $lon2 = $pos2.lon
44
45 $query = "$lat1,$($lon1):$lat2,$lon2"
46 # Write-Host $query
47 $travelUrl = "https://atlas.microsoft.com/route/directions/json?subscription-key=$subKey&api-version=1.0&query=$query&travelMode=car&traffic=true&departAt=2025-03-29T08:00:20&computeTravelTimeFor=all"
48 $result = Invoke-WebRequest $travelUrl
49 if($result.StatusCode -Eq 200){
50 $content = $result.Content | ConvertFrom-Json
51 if($content.formatVersion -Ne "0.0.12"){
52 Write-Warning "BEWARE Format has updated! BEWARE"
53 }
54 return $content.routes
55 }
56 return $result.StatusDescription
57 }
58
59
60 function Get-MapTravelMinutes() {
61 param(
62 [string]$from_address,
63 [string]$to_address
64 )
65 $routes = Get-MapTravelPlan -from_address $from_address -to_address $to_address
66 $seconds = $routes.summary.travelTimeInSeconds
67 return $seconds/60
68 }