1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
//! The **Distance Matrix API** is a service that provides travel distance and
//! time for a matrix of origins and destinations, based on the recommended
//! route between start and end points.
//!
//! # [Get Started](https://developers.google.com/maps/documentation/distance-matrix/start)
//!
//! * **New Users**: Before you can start using the Google Maps Platform APIs
//! and SDKs, you must sign up and create a billing account. To learn more, see
//! [Get Started with Google Maps
//! Platform](https://developers.google.com/maps/gmp-get-started).
//!
//! * This service is also available as part of the client-side [Maps JavaScript
//! API](https://developers.google.com/maps/documentation/javascript/distancematrix),
//! or for server-side use with the [Java Client, Python Client, Go Client and
//! Node.js Client for Google Maps
//! Services](https://developers.google.com/maps/documentation/distance-matrix/client-library).
//!
//! # [Start coding with our client libraries](https://developers.google.com/maps/documentation/distance-matrix/start#client-library)
//!
//! Client libraries make developing with the Google Maps web service APIs
//! easier by providing simple, native implementations of common tasks, such as
//! authentication, request throttling and automatic retry. The Distance Matrix
//! API is available in the [Java Client, Python Client, Go Client and Node.js
//! Client for Google Maps
//! Services](https://developers.google.com/maps/documentation/distance-matrix/client-library).
//!
//! # [Authentication, quotas, pricing, and policies](https://developers.google.com/maps/documentation/distance-matrix/start#auth)
//!
//! ## [Activate the API and get an API key](https://developers.google.com/maps/documentation/distance-matrix/start#get-a-key)
//!
//! To use the Distance Matrix API, you must first activate the API in the
//! Google Cloud Platform Console and obtain the proper authentication
//! credentials. You need to provide an **API key** in each request (or a
//! [client ID if you have a Premium
//! Plan](https://developers.google.com/maps/documentation/distance-matrix/get-api-key#premium-auth).
//!
//! Click the button below to flow through a process where you will:
//! 1. Create or select a project
//! 2. Enable the API
//! 3. Get an API key
//!
//! [Get Started](https://cloud.google.com/maps-platform/#get-started)
//!
//! [Learn more about authentication
//! credentials](https://developers.google.com/maps/documentation/distance-matrix/get-api-key).
//!
//! ## [Quotas and pricing](https://developers.google.com/maps/documentation/distance-matrix/start#quotas)
//!
//! Review the [usage and
//! billing](https://developers.google.com/maps/documentation/distance-matrix/usage-and-billing)
//! page for details on the quotas and pricing set for the Distance Matrix API.
//!
//! ## [Policies](https://developers.google.com/maps/documentation/distance-matrix/start#policies)
//!
//! Use of the Distance Matrix API must be in accordance with the [API
//! policies](https://developers.google.com/maps/documentation/distance-matrix/policies).
//!
//! # [Learn more](https://developers.google.com/maps/documentation/distance-matrix/start#learn-more)
//!
//! There’s more you can do with the Distance Matrix API, like [requesting
//! distance data for different travel
//! modes](https://developers.google.com/maps/documentation/distance-matrix/intro#travel_modes),
//! [requesting distance data in different units (for example, kilometers or
//! miles)](https://developers.google.com/maps/documentation/distance-matrix/intro#unit_systems),
//! and [estimating travel time in
//! traffic](https://developers.google.com/maps/documentation/distance-matrix/intro#traffic-model).
//! See the [Distance Matrix API developer
//! guide](https://developers.google.com/maps/documentation/distance-matrix/intro)
//! for more examples and other details.
//!
//! The [Distance Matrix API developer
//! guide](https://developers.google.com/maps/documentation/distance-matrix/intro)
//! is intended for developers who wish to compute travel distance and time
//! between a number of points within maps provided by one of the Google Maps
//! APIs. It provides an introduction to using the API and reference material on
//! the available parameters.

pub mod error;
pub mod request;
pub mod response;

pub use crate::directions::{
    request::{
        avoid::Avoid as Avoid,
        departure_time::DepartureTime as DepartureTime,
        location::Location as Location,
        traffic_model::TrafficModel as TrafficModel,
        transit_mode::TransitMode as TransitMode,
        transit_route_preference::TransitRoutePreference as TransitRoutePreference,
        unit_system::UnitSystem as UnitSystem,
        waypoint::Waypoint as Waypoint,
    }, // request
    response::{
        directions_distance::DirectionsDistance,
        directions_duration::DirectionsDuration,
        driving_maneuver::DrivingManeuver as DrivingManeuver,
        leg::Leg as Leg,
        overview_polyline::OverviewPolyline as OverviewPolyline,
        polyline::Polyline as Polyline,
        route::Route as Route,
        step::Step as Step,
        transit_agency::TransitAgency as TransitAgency,
        transit_currency::TransitCurrency as TransitCurrency,
        transit_details::TransitDetails as TransitDetails,
        transit_fare::TransitFare as TransitFare,
        transit_line::TransitLine as TransitLine,
        transit_stop::TransitStop as TransitStop,
        transit_time::TransitTime as TransitTime,
        transit_vehicle::TransitVehicle as TransitVehicle,
    }, // response
    travel_mode::TravelMode as TravelMode,
    vehicle_type::VehicleType as VehicleType,
}; // use

pub use crate::distance_matrix::{
    request::Request as DistanceMatrixRequest,
    response::Response as DistanceMatrixResponse,
    response::status::Status as DistanceMatrixStatus,
}; // use