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
//! 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 const SERVICE_URL: &str = "https://maps.googleapis.com/maps/api/distancematrix";
pub const OUTPUT_FORMAT: &str = "json"; // json or xml

// -----------------------------------------------------------------------------

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

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