openGoogleMapsNavigation static method
void
openGoogleMapsNavigation(
Opens Google Maps with turn-by-turn navigation to the given place. Uses native app schemes so the Maps app starts navigation when installed.
Implementation
static void openGoogleMapsNavigation(GoogleMapData googleMapData) {
if (!kIsWeb && Platform.isAndroid) {
String query;
if (googleMapData.address != null && googleMapData.address!.isNotEmpty) {
query = Uri.encodeQueryComponent(googleMapData.address!);
} else if (googleMapData.position != null) {
query =
'${googleMapData.position!.latitude},${googleMapData.position!.longitude}';
} else {
return;
}
final Uri uri = Uri.parse('google.navigation:q=$query');
DeviceService.openLinkUri(uri, preferNonBrowserApp: true);
} else {
// iOS: comgooglemaps://?daddr=...&directionsmode=driving
String destinationAddress;
if (googleMapData.address != null && googleMapData.address!.isNotEmpty) {
destinationAddress = Uri.encodeQueryComponent(googleMapData.address!);
} else if (googleMapData.position != null) {
destinationAddress =
'${googleMapData.position!.latitude},${googleMapData.position!.longitude}';
} else {
return;
}
final Uri uri = Uri.parse(
'comgooglemaps://?daddr=$destinationAddress&directionsmode=driving');
DeviceService.openLinkUri(uri, preferNonBrowserApp: true);
}
}