]> us-delaporte.pagekite.me Git - dotfiles.git/commitdiff
Merge branch 'main' of github.com:edthedev/dotfiles
authorEdward Delaporte <delaport@illinois.edu>
Wed, 8 Nov 2023 23:15:57 +0000 (17:15 -0600)
committerEdward Delaporte <delaport@illinois.edu>
Wed, 8 Nov 2023 23:15:57 +0000 (17:15 -0600)
psmodules/house_shopping.md [new file with mode: 0644]
psmodules/house_shopping.psm1 [new file with mode: 0644]

diff --git a/psmodules/house_shopping.md b/psmodules/house_shopping.md
new file mode 100644 (file)
index 0000000..af1c9b4
--- /dev/null
@@ -0,0 +1,33 @@
+\r
+\r
+## Reference\r
+\r
+- [Azure Maps](https://learn.microsoft.com/en-us/powershell/module/az.maps/?view=azps-10.4.1&viewFallbackFrom=azps-10.0.0)\r
+- https://learn.microsoft.com/en-us/azure/azure-maps/how-to-search-for-address\r
+\r
+\r
+https://geekeefy.wordpress.com/2016/05/17/powershell-module-for-google-map/\r
+\r
+## Setup\r
+\r
+Make sure that PowerShell 7 or higher is installed:\r
+\r
+```powershell\r
+if($PSVersionTable.PSVersion.Major < 7) {\r
+    winget install --id Microsoft.Powershell --source winget\r
+}\r
+\r
+Then inside PowerShell 7, install the Az module:\r
+\r
+```powershell\r
+Install-Module -Name Az -Repository PSGallery -Force\r
+```\r
+\r
+### Subscription Key\r
+\r
+\r
+\r
+Set your subscription key:\r
+```powershell\r
+$env:AzMapsSubKey="<your key here>"\r
+```
\ No newline at end of file
diff --git a/psmodules/house_shopping.psm1 b/psmodules/house_shopping.psm1
new file mode 100644 (file)
index 0000000..819194b
--- /dev/null
@@ -0,0 +1,68 @@
+\r
+function Get-TravelTimes() {\r
+\r
+\r
+}\r
+\r
+$fuzzyUrl = "https://atlas.microsoft.com/search/fuzzy/json?&api-version=1.0&subscription-key={Your-Azure-Maps-Subscription-key}&language=en-US&query=pizza"\r
+\r
+function Get-MapAddress() {\r
+    param(\r
+        [string]$address\r
+    )\r
+    $subKey = $env:AzMapsSubKey\r
+    $addyUrl = "https://atlas.microsoft.com/search/address/json?&subscription-key=$subKey&api-version=1.0&language=en-US&query=$address"\r
+    $result = Invoke-WebRequest $addyUrl\r
+    if($result.StatusCode -Eq 200){\r
+        return $result.Content | ConvertFrom-Json\r
+    }\r
+    return $result.StatusDescription\r
+}\r
+\r
+function Get-MapCoords() {\r
+    param(\r
+        [string]$address\r
+    )\r
+    $subKey = $env:AzMapsSubKey\r
+    $result = Get-MapAddress -Address $address\r
+    return $result.results.entryPoints[0].position\r
+}\r
+\r
+function Get-MapTravelPlan() {\r
+    param(\r
+        [string]$from_address,\r
+        [string]$to_address\r
+    )\r
+    $subKey = $env:AzMapsSubKey\r
+    $pos1 = Get-MapCoords -Address $from_address\r
+    $lat1 = $pos1.lat\r
+    $lon1 = $pos1.lon\r
+\r
+    $pos2 = Get-MapCoords -Address $to_address\r
+    $lat2 = $pos2.lat\r
+    $lon2 = $pos2.lon\r
+\r
+    $query = "$lat1,$($lon1):$lat2,$lon2"\r
+    # Write-Host $query\r
+    $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"\r
+    $result = Invoke-WebRequest $travelUrl\r
+    if($result.StatusCode -Eq 200){\r
+        $content = $result.Content | ConvertFrom-Json\r
+        if($content.formatVersion -Ne "0.0.12"){\r
+            Write-Warning "BEWARE Format has updated! BEWARE"\r
+        }\r
+        return $content.routes\r
+    }\r
+    return $result.StatusDescription\r
+}\r
+\r
+\r
+function Get-MapTravelMinutes() {\r
+    param(\r
+        [string]$from_address,\r
+        [string]$to_address\r
+    )\r
+    $routes = Get-MapTravelPlan -from_address $from_address -to_address $to_address\r
+    $seconds = $routes.summary.travelTimeInSeconds\r
+    return $seconds/60\r
+}
\ No newline at end of file