@googlemaps/routeoptimization 0.5.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +41 -271
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,24 +1,24 @@
1
1
  [//]: # "This README.md file is auto-generated, all changes to this file will be lost."
2
- [//]: # "To regenerate it, use `python -m synthtool`."
2
+ [//]: # "The comments you see below are used to generate those parts of the template in later states."
3
3
  <img src="https://avatars2.githubusercontent.com/u/2810941?v=3&s=96" alt="Google Cloud Platform logo" title="Google Cloud Platform" align="right" height="96" width="96"/>
4
4
 
5
- # [Route Optimization API: Node.js Client](https://github.com/googleapis/google-cloud-node/tree/main/packages/google-maps-routeoptimization)
6
-
7
- [![release level](https://img.shields.io/badge/release%20level-preview-yellow.svg?style=flat)](https://cloud.google.com/terms/launch-stages)
8
- [![npm version](https://img.shields.io/npm/v/@googlemaps/routeoptimization.svg)](https://www.npmjs.org/package/@googlemaps/routeoptimization)
9
-
5
+ # [Route Optimization API: Nodejs Client][homepage]
10
6
 
7
+ This library is considered to be in **preview**. This means it is still a
8
+ work-in-progress and under active development. Any release is subject to
9
+ backwards-incompatible changes at any time.
11
10
 
11
+ [![npm version](https://img.shields.io/npm/v/@googlemaps/routeoptimization.svg)](https://www.npmjs.org/package/@googlemaps/routeoptimization)
12
12
 
13
13
  Route Optimization API client for Node.js
14
14
 
15
+ [//]: # "partials.introduction"
15
16
 
16
17
  A comprehensive list of changes in each version may be found in
17
- [the CHANGELOG](https://github.com/googleapis/google-cloud-node/tree/main/packages/google-maps-routeoptimization/CHANGELOG.md).
18
+ [the CHANGELOG][homepage_changelog].
18
19
 
19
- * [Route Optimization API Node.js Client API Reference][client-docs]
20
- * [Route Optimization API Documentation][product-docs]
21
- * [github.com/googleapis/google-cloud-node/packages/google-maps-routeoptimization](https://github.com/googleapis/google-cloud-node/tree/main/packages/google-maps-routeoptimization)
20
+ * [Route Optimization API Nodejs Client API Reference](https://cloud.google.com/nodejs/docs/reference/routeoptimization/latest)
21
+ * [Route Optimization API Documentation](https://developers.google.com/maps/documentation/route-optimization)
22
22
 
23
23
  Read more about the client libraries for Cloud APIs, including the older
24
24
  Google APIs Client Libraries, in [Client Libraries Explained][explained].
@@ -27,18 +27,15 @@ Google APIs Client Libraries, in [Client Libraries Explained][explained].
27
27
 
28
28
  **Table of contents:**
29
29
 
30
-
31
30
  * [Quickstart](#quickstart)
32
31
  * [Before you begin](#before-you-begin)
33
32
  * [Installing the client library](#installing-the-client-library)
34
- * [Using the client library](#using-the-client-library)
35
- * [Samples](#samples)
33
+
36
34
  * [Versioning](#versioning)
37
35
  * [Contributing](#contributing)
38
36
  * [License](#license)
39
37
 
40
38
  ## Quickstart
41
-
42
39
  ### Before you begin
43
40
 
44
41
  1. [Select or create a Cloud Platform project][projects].
@@ -46,259 +43,44 @@ Google APIs Client Libraries, in [Client Libraries Explained][explained].
46
43
  1. [Enable the Route Optimization API API][enable_api].
47
44
  1. [Set up authentication][auth] so you can access the
48
45
  API from your local workstation.
49
-
50
46
  ### Installing the client library
51
47
 
52
48
  ```bash
53
49
  npm install @googlemaps/routeoptimization
54
50
  ```
55
51
 
52
+ ## Terms of Service
56
53
 
57
- ### Using the client library
58
-
59
- ```javascript
60
- /**
61
- * This snippet has been automatically generated and should be regarded as a code template only.
62
- * It will require modifications to work.
63
- * It may require correct/in-range values for request initialization.
64
- * TODO(developer): Uncomment these variables before running the sample.
65
- */
66
- /**
67
- * Required. Target project or location to make a call.
68
- * Format:
69
- * * `projects/{project-id}`
70
- * * `projects/{project-id}/locations/{location-id}`
71
- * If no location is specified, a region will be chosen automatically.
72
- */
73
- // const parent = 'abc123'
74
- /**
75
- * If this timeout is set, the server returns a response before the timeout
76
- * period has elapsed or the server deadline for synchronous requests is
77
- * reached, whichever is sooner.
78
- * For asynchronous requests, the server will generate a solution (if
79
- * possible) before the timeout has elapsed.
80
- */
81
- // const timeout = {}
82
- /**
83
- * Shipment model to solve.
84
- */
85
- // const model = {}
86
- /**
87
- * By default, the solving mode is `DEFAULT_SOLVE` (0).
88
- */
89
- // const solvingMode = {}
90
- /**
91
- * Search mode used to solve the request.
92
- */
93
- // const searchMode = {}
94
- /**
95
- * Guide the optimization algorithm in finding a first solution that is
96
- * similar to a previous solution.
97
- * The model is constrained when the first solution is built.
98
- * Any shipments not performed on a route are implicitly skipped in the first
99
- * solution, but they may be performed in successive solutions.
100
- * The solution must satisfy some basic validity assumptions:
101
- * * for all routes, `vehicle_index` must be in range and not be duplicated.
102
- * * for all visits, `shipment_index` and `visit_request_index` must be
103
- * in range.
104
- * * a shipment may only be referenced on one route.
105
- * * the pickup of a pickup-delivery shipment must be performed before
106
- * the delivery.
107
- * * no more than one pickup alternative or delivery alternative of
108
- * a shipment may be performed.
109
- * * for all routes, times are increasing (i.e., `vehicle_start_time
110
- * <= visits0.start_time <= visits1.start_time ...
111
- * <= vehicle_end_time`).
112
- * * a shipment may only be performed on a vehicle that is allowed. A
113
- * vehicle is allowed if
114
- * Shipment.allowed_vehicle_indices google.maps.routeoptimization.v1.Shipment.allowed_vehicle_indices
115
- * is empty or its `vehicle_index` is included in
116
- * Shipment.allowed_vehicle_indices google.maps.routeoptimization.v1.Shipment.allowed_vehicle_indices.
117
- * If the injected solution is not feasible, a validation error is not
118
- * necessarily returned and an error indicating infeasibility may be returned
119
- * instead.
120
- */
121
- // const injectedFirstSolutionRoutes = [1,2,3,4]
122
- /**
123
- * Constrain the optimization algorithm to find a final solution that is
124
- * similar to a previous solution. For example, this may be used to freeze
125
- * portions of routes which have already been completed or which are to be
126
- * completed but must not be modified.
127
- * If the injected solution is not feasible, a validation error is not
128
- * necessarily returned and an error indicating infeasibility may be returned
129
- * instead.
130
- */
131
- // const injectedSolutionConstraint = {}
132
- /**
133
- * If non-empty, the given routes will be refreshed, without modifying their
134
- * underlying sequence of visits or travel times: only other details will be
135
- * updated. This does not solve the model.
136
- * As of 2020/11, this only populates the polylines of non-empty routes and
137
- * requires that `populate_polylines` is true.
138
- * The `route_polyline` fields of the passed-in routes may be inconsistent
139
- * with route `transitions`.
140
- * This field must not be used together with `injected_first_solution_routes`
141
- * or `injected_solution_constraint`.
142
- * `Shipment.ignore` and `Vehicle.ignore` have no effect on the behavior.
143
- * Polylines are still populated between all visits in all non-empty routes
144
- * regardless of whether the related shipments or vehicles are ignored.
145
- */
146
- // const refreshDetailsRoutes = [1,2,3,4]
147
- /**
148
- * If true:
149
- * * uses
150
- * ShipmentRoute.vehicle_label google.maps.routeoptimization.v1.ShipmentRoute.vehicle_label
151
- * instead of `vehicle_index` to
152
- * match routes in an injected solution with vehicles in the request;
153
- * reuses the mapping of original
154
- * ShipmentRoute.vehicle_index google.maps.routeoptimization.v1.ShipmentRoute.vehicle_index
155
- * to new
156
- * ShipmentRoute.vehicle_index google.maps.routeoptimization.v1.ShipmentRoute.vehicle_index
157
- * to update
158
- * ConstraintRelaxation.vehicle_indices google.maps.routeoptimization.v1.InjectedSolutionConstraint.ConstraintRelaxation.vehicle_indices
159
- * if non-empty, but the mapping must be unambiguous (i.e., multiple
160
- * `ShipmentRoute`s must not share the same original `vehicle_index`).
161
- * * uses
162
- * ShipmentRoute.Visit.shipment_label google.maps.routeoptimization.v1.ShipmentRoute.Visit.shipment_label
163
- * instead of `shipment_index`
164
- * to match visits in an injected solution with shipments in the request;
165
- * * uses
166
- * SkippedShipment.label google.maps.routeoptimization.v1.SkippedShipment.label
167
- * instead of
168
- * SkippedShipment.index google.maps.routeoptimization.v1.SkippedShipment.index
169
- * to
170
- * match skipped shipments in the injected solution with request
171
- * shipments.
172
- * This interpretation applies to the `injected_first_solution_routes`,
173
- * `injected_solution_constraint`, and `refresh_details_routes` fields.
174
- * It can be used when shipment or vehicle indices in the request have
175
- * changed since the solution was created, perhaps because shipments or
176
- * vehicles have been removed from or added to the request.
177
- * If true, labels in the following categories must appear at most once in
178
- * their category:
179
- * * Vehicle.label google.maps.routeoptimization.v1.Vehicle.label in the
180
- * request;
181
- * * Shipment.label google.maps.routeoptimization.v1.Shipment.label in
182
- * the request;
183
- * * ShipmentRoute.vehicle_label google.maps.routeoptimization.v1.ShipmentRoute.vehicle_label in the injected solution;
184
- * * SkippedShipment.label google.maps.routeoptimization.v1.SkippedShipment.label and ShipmentRoute.Visit.shipment_label google.maps.routeoptimization.v1.ShipmentRoute.Visit.shipment_label in
185
- * the injected solution (except pickup/delivery visit pairs, whose
186
- * `shipment_label` must appear twice).
187
- * If a `vehicle_label` in the injected solution does not correspond to a
188
- * request vehicle, the corresponding route is removed from the solution
189
- * along with its visits. If a `shipment_label` in the injected solution does
190
- * not correspond to a request shipment, the corresponding visit is removed
191
- * from the solution. If a
192
- * SkippedShipment.label google.maps.routeoptimization.v1.SkippedShipment.label
193
- * in the injected solution does not correspond to a request shipment, the
194
- * `SkippedShipment` is removed from the solution.
195
- * Removing route visits or entire routes from an injected solution may
196
- * have an effect on the implied constraints, which may lead to change in
197
- * solution, validation errors, or infeasibility.
198
- * NOTE: The caller must ensure that each
199
- * Vehicle.label google.maps.routeoptimization.v1.Vehicle.label (resp.
200
- * Shipment.label google.maps.routeoptimization.v1.Shipment.label) uniquely
201
- * identifies a vehicle (resp. shipment) entity used across the two relevant
202
- * requests: the past request that produced the `OptimizeToursResponse` used
203
- * in the injected solution and the current request that includes the injected
204
- * solution. The uniqueness checks described above are not enough to guarantee
205
- * this requirement.
206
- */
207
- // const interpretInjectedSolutionsUsingLabels = true
208
- /**
209
- * Consider traffic estimation in calculating `ShipmentRoute` fields
210
- * Transition.travel_duration google.maps.routeoptimization.v1.ShipmentRoute.Transition.travel_duration,
211
- * Visit.start_time google.maps.routeoptimization.v1.ShipmentRoute.Visit.start_time,
212
- * and `vehicle_end_time`; in setting the
213
- * ShipmentRoute.has_traffic_infeasibilities google.maps.routeoptimization.v1.ShipmentRoute.has_traffic_infeasibilities
214
- * field, and in calculating the
215
- * OptimizeToursResponse.total_cost google.maps.routeoptimization.v1.OptimizeToursResponse.total_cost
216
- * field.
217
- */
218
- // const considerRoadTraffic = true
219
- /**
220
- * If true, polylines will be populated in response `ShipmentRoute`s.
221
- */
222
- // const populatePolylines = true
223
- /**
224
- * If true, polylines will be populated in response
225
- * ShipmentRoute.transitions google.maps.routeoptimization.v1.ShipmentRoute.transitions.
226
- */
227
- // const populateTransitionPolylines = true
228
- /**
229
- * If this is set, then the request can have a deadline
230
- * (see https://grpc.io/blog/deadlines) of up to 60 minutes.
231
- * Otherwise, the maximum deadline is only 30 minutes.
232
- * Note that long-lived requests have a significantly larger (but still small)
233
- * risk of interruption.
234
- */
235
- // const allowLargeDeadlineDespiteInterruptionRisk = true
236
- /**
237
- * If true, travel distances will be computed using geodesic distances instead
238
- * of Google Maps distances, and travel times will be computed using geodesic
239
- * distances with a speed defined by `geodesic_meters_per_second`.
240
- */
241
- // const useGeodesicDistances = true
242
- /**
243
- * When `use_geodesic_distances` is true, this field must be set and defines
244
- * the speed applied to compute travel times. Its value must be at least 1.0
245
- * meters/seconds.
246
- */
247
- // const geodesicMetersPerSecond = 1234
248
- /**
249
- * Truncates the number of validation errors returned. These errors are
250
- * typically attached to an INVALID_ARGUMENT error payload as a BadRequest
251
- * error detail (https://cloud.google.com/apis/design/errors#error_details),
252
- * unless solving_mode=VALIDATE_ONLY: see the
253
- * OptimizeToursResponse.validation_errors google.maps.routeoptimization.v1.OptimizeToursResponse.validation_errors
254
- * field.
255
- * This defaults to 100 and is capped at 10,000.
256
- */
257
- // const maxValidationErrors = 1234
258
- /**
259
- * Label that may be used to identify this request, reported back in the
260
- * OptimizeToursResponse.request_label google.maps.routeoptimization.v1.OptimizeToursResponse.request_label.
261
- */
262
- // const label = 'abc123'
263
-
264
- // Imports the Routeoptimization library
265
- const {RouteOptimizationClient} = require('@googlemaps/routeoptimization').v1;
266
-
267
- // Instantiates a client
268
- const routeoptimizationClient = new RouteOptimizationClient();
269
-
270
- async function callOptimizeTours() {
271
- // Construct request
272
- const request = {
273
- parent,
274
- model,
275
- };
276
-
277
- // Run request
278
- const response = await routeoptimizationClient.optimizeTours(request);
279
- console.log(response);
280
- }
281
-
282
- callOptimizeTours();
283
-
284
- ```
54
+ `@googlemaps/routeoptimization` uses Google Maps Platform services. Use of Google
55
+ Maps Platform services through this library is subject to the
56
+ [Google Maps Platform Terms of Service][gmp-tos].
285
57
 
58
+ This library is not a Google Maps Platform Core Service.
59
+ Therefore, the Google Maps Platform Terms of Service (e.g., Technical
60
+ Support Services, Service Level Agreements, and Deprecation Policy)
61
+ do not apply to this library.
286
62
 
63
+ ### European Economic Area (EEA) developers
287
64
 
288
- ## Samples
65
+ If your billing address is in the European Economic Area, effective on
66
+ 8 July 2025, the [Google Maps Platform EEA Terms of Service][gmp-tos-eea]
67
+ will apply to your use of the Services. Functionality varies by region.
68
+ [Learn more][gmp-tos-eea-faq].
289
69
 
290
- Samples are in the [`samples/`](https://github.com/googleapis/google-cloud-node/tree/main/packages/google-maps-routeoptimization/samples) directory. Each sample's `README.md` has instructions for running its sample.
70
+ [gmp-tos]: https://cloud.google.com/maps-platform/terms
71
+ [gmp-tos-eea]: https://cloud.google.com/terms/maps-platform/eea
72
+ [gmp-tos-eea-faq]: https://developers.google.com/maps/comms/eea/faq
291
73
 
292
- | Sample | Source Code | Try it |
293
- | --------------------------- | --------------------------------- | ------ |
294
- | Route_optimization.batch_optimize_tours | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-maps-routeoptimization/samples/generated/v1/route_optimization.batch_optimize_tours.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-maps-routeoptimization/samples/generated/v1/route_optimization.batch_optimize_tours.js,packages/google-maps-routeoptimization/samples/README.md) |
295
- | Route_optimization.optimize_tours | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-maps-routeoptimization/samples/generated/v1/route_optimization.optimize_tours.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-maps-routeoptimization/samples/generated/v1/route_optimization.optimize_tours.js,packages/google-maps-routeoptimization/samples/README.md) |
296
- | Quickstart | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-maps-routeoptimization/samples/quickstart.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-maps-routeoptimization/samples/quickstart.js,packages/google-maps-routeoptimization/samples/README.md) |
74
+ ## Samples
297
75
 
76
+ Samples are in the [`samples/`][homepage_samples] directory. Each sample's `README.md` has instructions for running its sample.
298
77
 
78
+ | Sample | Source Code |
79
+ | --------------------------- | --------------------------------- |
80
+ | batch optimize tours | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-maps-routeoptimization/samples/generated/v1/route_optimization.batch_optimize_tours.js) |
81
+ | optimize tours | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-maps-routeoptimization/samples/generated/v1/route_optimization.optimize_tours.js) |
82
+ | maps | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-maps-routeoptimization/samples/generated/v1/snippet_metadata_google.maps.routeoptimization.v1.json) |
299
83
 
300
- The [Route Optimization API Node.js Client API Reference][client-docs] documentation
301
- also contains samples.
302
84
 
303
85
  ## Supported Node.js Versions
304
86
 
@@ -325,41 +107,29 @@ for versions compatible with Node.js 8.
325
107
 
326
108
  This library follows [Semantic Versioning](http://semver.org/).
327
109
 
328
-
329
-
330
-
331
-
332
-
333
-
334
- This library is considered to be in **preview**. This means it is still a
335
- work-in-progress and under active development. Any release is subject to
336
- backwards-incompatible changes at any time.
337
-
338
-
339
110
  More Information: [Google Cloud Platform Launch Stages][launch_stages]
340
111
 
341
112
  [launch_stages]: https://cloud.google.com/terms/launch-stages
342
113
 
343
114
  ## Contributing
344
115
 
345
- Contributions welcome! See the [Contributing Guide](https://github.com/googleapis/google-cloud-node/blob/main/CONTRIBUTING.md).
116
+ Contributions welcome! See the [Contributing Guide](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-maps-routeoptimization/CONTRIBUTING.md).
346
117
 
347
- Please note that this `README.md`, the `samples/README.md`,
118
+ Please note that this `README.md`
348
119
  and a variety of configuration files in this repository (including `.nycrc` and `tsconfig.json`)
349
- are generated from a central template. To edit one of these files, make an edit
350
- to its templates in
351
- [directory](https://github.com/googleapis/synthtool).
120
+ are generated from a central template.
352
121
 
353
122
  ## License
354
123
 
355
124
  Apache Version 2.0
356
125
 
357
- See [LICENSE](https://github.com/googleapis/google-cloud-node/blob/main/LICENSE)
126
+ See [LICENSE](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-maps-routeoptimization/LICENSE)
358
127
 
359
- [client-docs]: https://cloud.google.com/nodejs/docs/reference/routeoptimization/latest
360
- [product-docs]: https://developers.google.com/maps/documentation/route-optimization
361
128
  [shell_img]: https://gstatic.com/cloudssh/images/open-btn.png
362
129
  [projects]: https://console.cloud.google.com/project
363
130
  [billing]: https://support.google.com/cloud/answer/6293499#enable-billing
364
131
  [enable_api]: https://console.cloud.google.com/flows/enableapi?apiid=routeoptimization.googleapis.com
365
132
  [auth]: https://cloud.google.com/docs/authentication/external/set-up-adc-local
133
+ [homepage_samples]: https://github.com/googleapis/google-cloud-node/blob/main/packages/google-maps-routeoptimization/samples
134
+ [homepage_changelog]: https://github.com/googleapis/google-cloud-node/blob/main/packages/google-maps-routeoptimization/CHANGELOG.md
135
+ [homepage]: https://github.com/googleapis/google-cloud-node/blob/main/packages/google-maps-routeoptimization
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@googlemaps/routeoptimization",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "description": "Route Optimization API client for Node.js",
5
5
  "repository": {
6
6
  "type": "git",