maplauncherplus 1.0.1 copy "maplauncherplus: ^1.0.1" to clipboard
maplauncherplus: ^1.0.1 copied to clipboard

A plugin to launch maps.


# Map Launcher Plus

A powerful Flutter plugin to detect and launch map applications on iOS and Android.  
It provides a native-style bottom sheet when multiple apps are installed and supports saving a default map app for future launches.

---


## Features

- πŸ—ΊοΈ **Detect Installed Maps** – Automatically finds all supported map apps.
- πŸ“± **Cross-Platform** – Works on both Android and iOS.
- πŸ“ **Two Modes**  
  - **Navigate** – Draws a route to a coordinate
  - **Show Location** – Display a coordinate with a pin
- πŸ‘† **Native Bottom Sheet UI** – Lets the user choose between installed map apps.
- πŸ’Ύ **Default App Preference** – User can choose β€œAlways use this app”.
- πŸš€ **Direct Launch** – If one app or a default exists, it launches instantly.
- βš™οΈ **Simple API** – High-level helper + low-level control available.

---

## Supported Map Apps

| Platform | Apps |
|---------|------|
| **Android** | Google Maps, Waze,Here we go,Sygic,Yandex Navigator,Yandex Maps and Navigator |
| **iOS**     | Apple Maps, Google Maps, Waze,Here we go,Sygic,Yandex Navigator,Yandex Maps and Navigator |

---

## Installation

Add to your `pubspec.yaml`:

```yaml
dependencies:
  maplauncherplus: ^1.0.0  # Use latest version

Run:

flutter pub get

Platform Setup #

iOS (Required) #

Add URL schemes in ios/Runner/Info.plist:

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>comgooglemaps</string>
    <string>waze</string>
    <string>here-route</string>
    <string>com.sygic.aura</string>
    <string>yandexnavi</string>
    <string>yandexmaps</string>
</array>

Apple Maps does not require configuration.


Android (No setup required) #

The plugin already includes required <queries> entries in the manifest.


Usage #

Import the package:

import 'package:maplauncherplus/maplauncherplus.dart';

final mapLauncher = MapLauncherPlus();

void _showLocation() {
  mapLauncher.openMap(
    context: context,
    latitude: 34.052235,
    longitude: -118.243683,
    mode: MapLauncherMode.show,
  );
}

void _navigate() {
  mapLauncher.openMap(
    context: context,
    latitude: 34.052235,
    longitude: -118.243683,
  );
}

This method automatically: #

  • Detects installed apps
  • Remembers default app
  • Shows chooser bottom sheet if needed

Low-Level Usage #

Get installed map apps #

final apps = await mapLauncher.getInstalledMapApps();

Clear Saved Default App #

await mapLauncher.resetDefaultMapApp();

License #

MIT License #