google_maps_directions

Creator: coderz1093

Last updated:

Add to Cart

Description:

google maps directions

Get directions shortest route/leg between two points & calculate distances, durations with Google_Maps Directions API #
Documentation française accessible ici.
Features #

Get directions between two points.
Calculate distance or duration (corresponding to shortest route distance /duration evaluation) between two points.
Get shortest route between/leg two points.

Getting started #

AddressPoint : Object with latitude and longitude.
DirectionRoute : Path on foot, motorcycle, train, or car between two points.

Usage #
You need to have a valid Google Maps Routes API Key.
const String googleAPIKey = "GOOGLE_API_KEY";

//You can init the Package with this API_Key so you don't have to pass it as an argument to it's methods.

GoogleMapsDirections.init(googleAPIKey: googleAPIKey);
copied to clipboard
Directions #
import "package:google_maps_directions/google_maps_directions.dart" as gmd;

...

Directions directions = await getDirections(
p1.lat,
p1.lng,
p2.lat,
p2.lng,
language: "fr_FR",
);

DirectionRoute route = directions.shortestRoute;

copied to clipboard
You can draw a route between the two addresses on a Map using google_maps_flutter and flutter_polyline_points packages.
import 'package:flutter_polyline_points/flutter_polyline_points.dart';
import 'package:google_maps_directions/google_maps_directions.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';

...

DirectionRoute route = directions.shortestRoute;

List<LatLng> points = PolylinePoints().decodePolyline(route.overviewPolyline.points)
.map((point) => LatLng(point.latitude, point.longitude))
.toList();

List<Polyline> polylines = [
Polyline(
width: 5,
polylineId: PolylineId("UNIQUE_ROUTE_ID"),
color: Colors.green,
points: points,
),
];

...

@override
Widget build(BuildContext context) {
return Scaffold(
body : GoogleMap(
polylines: Set.of(polylines),
...
),
);
}

copied to clipboard
You can also give indications for each stage of a route. A more complete demonstration is provided in example directory.
import 'package:google_maps_directions/google_maps_directions.dart';

...


DirectionRoute route = directions.shortestRoute;

DirectionLegStep firstRouteLegStep = route.shortestLeg.steps.first;
print(firstRouteLegStep.htmlInstructions); //At the roundabout, take the exit onto route National 1.
print(firstRouteLegStep.maneuver); //roundabout-right.

copied to clipboard
Distance #
import "package:google_maps_directions/google_maps_directions.dart" as gmd;

DistanceValue distanceBetween = await gmd.distance(9.2460524, 1.2144565, 6.1271617, 1.2345417, googleAPIKey : googleAPIKey); //gmd.distance(9.2460524, 1.2144565, 6.1271617, 1.2345417) or without passing the API_KEY if the plugin is already initialized with it's value.

int meters = distanceBetween.meters // await gmd.distanceInMeters(9.2460524, 1.2144565, 6.1271617, 1.2345417, googleAPIKey : googleAPIKey);

String textInKmOrMeters = distanceBetween.text // await gmd.distanceText(9.2460524, 1.2144565, 6.1271617, 1.2345417, googleAPIKey : googleAPIKey);
copied to clipboard
Duration #
import "package:google_maps_directions/google_maps_directions.dart" as gmd;

DurationValue durationBetween = await gmd.duration(9.2460524, 1.2144565, 6.1271617, 1.2345417, googleAPIKey : googleAPIKey);

int seconds = durationBetween.seconds//await gmd.durationInSeconds(9.2460524, 1.2144565, 6.1271617, 1.2345417, googleAPIKey : googleAPIKey);

String durationInMinutesOrHours = gmd.durationBetween.text // await gmd.durationText(9.2460524, 1.2144565, 6.1271617, 1.2345417, googleAPIKey : googleAPIKey);
copied to clipboard
Issues | Features requests #
Feel free to submit issues, suggestions or features requests on this package issues tracker.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.