From 49b6f24f20fe7b786abad9710d09bbbfbed8ae48 Mon Sep 17 00:00:00 2001 From: Brandon Shutter Date: Mon, 30 Mar 2026 15:48:35 -0600 Subject: [PATCH] feat: add DashTag Maps as supported navigation app Add DashTag Maps (dashtagmaps) as a new navigation app option. DashTag Maps is a vehicle enthusiast navigation app supporting single-destination and multi-waypoint navigation via deep links. URL scheme: dashtagmaps:// - Single: dashtagmaps://navigate?lat=X&lon=Y&title=Z - Multi-waypoint: dashtagmaps://navigate?waypoints=lat,lng,name|... Co-Authored-By: Claude Opus 4.6 (1M context) --- README.md | 2 ++ app.plugin.js | 1 + src/constants.ts | 3 +++ src/images/dashtagmaps.png | Bin 0 -> 10938 bytes src/type.ts | 3 ++- src/utils.ts | 14 ++++++++++++++ 6 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 src/images/dashtagmaps.png diff --git a/README.md b/README.md index 93c622b..4acdb32 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,7 @@ on their device. The app supports Apple Maps, Google Maps, Citymapper, Uber, and - Petal Maps - `petalmaps` (Android only) - Sygic - `sygic` - TomTom GO - `tomtomgo` (IOS only) +- DashTag Maps - `dashtagmaps` @@ -86,6 +87,7 @@ Just add this in your `Info.plist` depending on which apps you'd like to support dgis lftgpas sygic + dashtagmaps ``` diff --git a/app.plugin.js b/app.plugin.js index 7b314e0..3b12907 100644 --- a/app.plugin.js +++ b/app.plugin.js @@ -26,6 +26,7 @@ const schemes = [ 'petalmaps', 'sygic', 'here-route', + 'dashtagmaps', ]; const intents = ['geo', 'waze'].map((app) => { diff --git a/src/constants.ts b/src/constants.ts index ceb48ea..9d56719 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -36,6 +36,7 @@ export const generatePrefixes = ({ sygic: 'com.sygic.aura://', here: 'here-route://', tomtomgo: 'tomtomgo://', + dashtagmaps: 'dashtagmaps://', }; }; @@ -74,6 +75,7 @@ export const generateTitles = ( sygic: 'Sygic', here: 'Here We Go', tomtomgo: 'TomTom GO', + dashtagmaps: 'DashTag Maps', ...(titles || {}), }; }; @@ -104,6 +106,7 @@ export const icons: Record = { sygic: require('./images/sygic.png'), here: require('./images/here.png'), tomtomgo: require('./images/tomtomgo.png'), + dashtagmaps: require('./images/dashtagmaps.png'), }; export const appKeys: string[] = Object.keys(icons); diff --git a/src/images/dashtagmaps.png b/src/images/dashtagmaps.png new file mode 100644 index 0000000000000000000000000000000000000000..b0615b72fe12ed26dcffbe5e159949f604153630 GIT binary patch literal 10938 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