@googlemaps/places 2.0.0 → 2.1.0

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.
package/README.md CHANGED
@@ -44,7 +44,7 @@ Google APIs Client Libraries, in [Client Libraries Explained][explained].
44
44
  1. [Select or create a Cloud Platform project][projects].
45
45
  1. [Enable billing for your project][billing].
46
46
  1. [Enable the Places API (New) API][enable_api].
47
- 1. [Set up authentication with a service account][auth] so you can access the
47
+ 1. [Set up authentication][auth] so you can access the
48
48
  API from your local workstation.
49
49
 
50
50
  ### Installing the client library
@@ -167,4 +167,4 @@ See [LICENSE](https://github.com/googleapis/google-cloud-node/blob/main/LICENSE)
167
167
  [projects]: https://console.cloud.google.com/project
168
168
  [billing]: https://support.google.com/cloud/answer/6293499#enable-billing
169
169
  [enable_api]: https://console.cloud.google.com/flows/enableapi?apiid=places.googleapis.com
170
- [auth]: https://cloud.google.com/docs/authentication/getting-started
170
+ [auth]: https://cloud.google.com/docs/authentication/external/set-up-adc-local
@@ -0,0 +1,144 @@
1
+ // Copyright 2025 Google LLC
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ syntax = "proto3";
16
+
17
+ package google.maps.places.v1;
18
+
19
+ import "google/api/resource.proto";
20
+ import "google/type/localized_text.proto";
21
+
22
+ option csharp_namespace = "Google.Maps.Places.V1";
23
+ option go_package = "cloud.google.com/go/maps/places/apiv1/placespb;placespb";
24
+ option java_multiple_files = true;
25
+ option java_outer_classname = "AddressDescriptorProto";
26
+ option java_package = "com.google.maps.places.v1";
27
+ option objc_class_prefix = "GMPSV1";
28
+ option php_namespace = "Google\\Maps\\Places\\V1";
29
+
30
+ // A relational description of a location. Includes a ranked set of nearby
31
+ // landmarks and precise containing areas and their relationship to the target
32
+ // location.
33
+ message AddressDescriptor {
34
+ // Basic landmark information and the landmark's relationship with the
35
+ // target location.
36
+ //
37
+ // Landmarks are prominent places that can be used to describe a location.
38
+ message Landmark {
39
+ // Defines the spatial relationship between the target location and the
40
+ // landmark.
41
+ enum SpatialRelationship {
42
+ // This is the default relationship when nothing more specific below
43
+ // applies.
44
+ NEAR = 0;
45
+
46
+ // The landmark has a spatial geometry and the target is within its
47
+ // bounds.
48
+ WITHIN = 1;
49
+
50
+ // The target is directly adjacent to the landmark.
51
+ BESIDE = 2;
52
+
53
+ // The target is directly opposite the landmark on the other side of the
54
+ // road.
55
+ ACROSS_THE_ROAD = 3;
56
+
57
+ // On the same route as the landmark but not besides or across.
58
+ DOWN_THE_ROAD = 4;
59
+
60
+ // Not on the same route as the landmark but a single turn away.
61
+ AROUND_THE_CORNER = 5;
62
+
63
+ // Close to the landmark's structure but further away from its street
64
+ // entrances.
65
+ BEHIND = 6;
66
+ }
67
+
68
+ // The landmark's resource name.
69
+ string name = 1 [
70
+ (google.api.resource_reference) = { type: "places.googleapis.com/Place" }
71
+ ];
72
+
73
+ // The landmark's place id.
74
+ string place_id = 2;
75
+
76
+ // The landmark's display name.
77
+ google.type.LocalizedText display_name = 3;
78
+
79
+ // A set of type tags for this landmark. For a complete list of possible
80
+ // values, see
81
+ // https://developers.google.com/maps/documentation/places/web-service/place-types.
82
+ repeated string types = 4;
83
+
84
+ // Defines the spatial relationship between the target location and the
85
+ // landmark.
86
+ SpatialRelationship spatial_relationship = 5;
87
+
88
+ // The straight line distance, in meters, between the center point of the
89
+ // target and the center point of the landmark. In some situations, this
90
+ // value can be longer than `travel_distance_meters`.
91
+ float straight_line_distance_meters = 6;
92
+
93
+ // The travel distance, in meters, along the road network from the target to
94
+ // the landmark, if known. This value does not take into account the mode of
95
+ // transportation, such as walking, driving, or biking.
96
+ optional float travel_distance_meters = 7;
97
+ }
98
+
99
+ // Area information and the area's relationship with the target location.
100
+ //
101
+ // Areas includes precise sublocality, neighborhoods, and large compounds that
102
+ // are useful for describing a location.
103
+ message Area {
104
+ // Defines the spatial relationship between the target location and the
105
+ // area.
106
+ enum Containment {
107
+ // The containment is unspecified.
108
+ CONTAINMENT_UNSPECIFIED = 0;
109
+
110
+ // The target location is within the area region, close to the
111
+ // center.
112
+ WITHIN = 1;
113
+
114
+ // The target location is within the area region, close to the edge.
115
+ OUTSKIRTS = 2;
116
+
117
+ // The target location is outside the area region, but close by.
118
+ NEAR = 3;
119
+ }
120
+
121
+ // The area's resource name.
122
+ string name = 1 [
123
+ (google.api.resource_reference) = { type: "places.googleapis.com/Place" }
124
+ ];
125
+
126
+ // The area's place id.
127
+ string place_id = 2;
128
+
129
+ // The area's display name.
130
+ google.type.LocalizedText display_name = 3;
131
+
132
+ // Defines the spatial relationship between the target location and the
133
+ // area.
134
+ Containment containment = 4;
135
+ }
136
+
137
+ // A ranked list of nearby landmarks. The most recognizable and nearby
138
+ // landmarks are ranked first.
139
+ repeated Landmark landmarks = 1;
140
+
141
+ // A ranked list of containing or adjacent areas. The most recognizable and
142
+ // precise areas are ranked first.
143
+ repeated Area areas = 2;
144
+ }
@@ -50,4 +50,10 @@ message Photo {
50
50
 
51
51
  // This photo's authors.
52
52
  repeated AuthorAttribution author_attributions = 4;
53
+
54
+ // A link where users can flag a problem with the photo.
55
+ string flag_content_uri = 5;
56
+
57
+ // A link to show the photo on Google Maps.
58
+ string google_maps_uri = 6;
53
59
  }
@@ -18,12 +18,12 @@ package google.maps.places.v1;
18
18
 
19
19
  import "google/api/resource.proto";
20
20
  import "google/geo/type/viewport.proto";
21
+ import "google/maps/places/v1/address_descriptor.proto";
21
22
  import "google/maps/places/v1/content_block.proto";
22
23
  import "google/maps/places/v1/ev_charging.proto";
23
24
  import "google/maps/places/v1/fuel_options.proto";
24
25
  import "google/maps/places/v1/photo.proto";
25
26
  import "google/maps/places/v1/price_range.proto";
26
- import "google/maps/places/v1/reference.proto";
27
27
  import "google/maps/places/v1/review.proto";
28
28
  import "google/protobuf/timestamp.proto";
29
29
  import "google/type/date.proto";
@@ -177,14 +177,31 @@ message Place {
177
177
  optional bool open_now = 1;
178
178
 
179
179
  // The periods that this place is open during the week. The periods are in
180
- // chronological order, starting with Sunday in the place-local timezone. An
181
- // empty (but not absent) value indicates a place that is never open, e.g.
180
+ // chronological order, in the place-local timezone. An empty (but not
181
+ // absent) value indicates a place that is never open, e.g.
182
182
  // because it is closed temporarily for renovations.
183
+ //
184
+ // The starting day of `periods` is NOT fixed and should not be assumed to
185
+ // be Sunday. The API determines the start day based on a variety of
186
+ // factors. For example, for a 24/7 business, the first period may begin on
187
+ // the day of the request. For other businesses, it might be the first day
188
+ // of the week that they are open.
189
+ //
190
+ // NOTE: The ordering of the `periods` array is independent of the ordering
191
+ // of the `weekday_descriptions` array. Do not assume they will begin on the
192
+ // same day.
183
193
  repeated Period periods = 2;
184
194
 
185
195
  // Localized strings describing the opening hours of this place, one string
186
- // for each day of the week. Will be empty if the hours are unknown or
187
- // could not be converted to localized text. Example: "Sun: 18:00–06:00"
196
+ // for each day of the week.
197
+ //
198
+ // NOTE: The order of the days and the start of the week is determined by
199
+ // the locale (language and region). The ordering of the `periods` array is
200
+ // independent of the ordering of the `weekday_descriptions` array. Do not
201
+ // assume they will begin on the same day.
202
+ //
203
+ // Will be empty if the hours are unknown or could not be converted to
204
+ // localized text. Example: "Sun: 18:00–06:00"
188
205
  repeated string weekday_descriptions = 3;
189
206
 
190
207
  // A type string used to identify the type of secondary hours.
@@ -273,15 +290,21 @@ message Place {
273
290
  optional bool paid_garage_parking = 7;
274
291
  }
275
292
 
276
- // Place resource name and id of sub destinations that relate to the place.
277
- // For example, different terminals are different destinations of an airport.
293
+ // Sub-destinations are specific places associated with a main place. These
294
+ // provide more specific destinations for users who are searching within a
295
+ // large or complex place, like an airport, national park, university, or
296
+ // stadium. For example, sub-destinations at an airport might include
297
+ // associated terminals and parking lots. Sub-destinations return the place ID
298
+ // and place resource name, which can be used in subsequent Place Details
299
+ // (New) requests to fetch richer details, including the sub-destination's
300
+ // display name and location.
278
301
  message SubDestination {
279
- // The resource name of the sub destination.
302
+ // The resource name of the sub-destination.
280
303
  string name = 1 [
281
304
  (google.api.resource_reference) = { type: "places.googleapis.com/Place" }
282
305
  ];
283
306
 
284
- // The place id of the sub destination.
307
+ // The place id of the sub-destination.
285
308
  string id = 2;
286
309
  }
287
310
 
@@ -300,31 +323,18 @@ message Place {
300
323
  optional bool wheelchair_accessible_seating = 4;
301
324
  }
302
325
 
303
- // Experimental: See
304
- // https://developers.google.com/maps/documentation/places/web-service/experimental/places-generative
305
- // for more details.
306
- //
307
326
  // AI-generated summary of the place.
308
327
  message GenerativeSummary {
309
328
  // The overview of the place.
310
329
  google.type.LocalizedText overview = 1;
311
330
 
312
- // The detailed description of the place.
313
- google.type.LocalizedText description = 2;
331
+ // A link where users can flag a problem with the overview summary.
332
+ string overview_flag_content_uri = 4;
314
333
 
315
- // References that are used to generate the summary description.
316
- References references = 3;
317
- }
318
-
319
- // Experimental: See
320
- // https://developers.google.com/maps/documentation/places/web-service/experimental/places-generative
321
- // for more details.
322
- //
323
- // AI-generated summary of the area that the place is in.
324
- message AreaSummary {
325
- // Content blocks that compose the area summary. Each block has a separate
326
- // topic about the area.
327
- repeated ContentBlock content_blocks = 4;
334
+ // The AI disclosure message "Summarized with Gemini"
335
+ // (and its localized variants). This will be in the language specified in
336
+ // the request if available.
337
+ google.type.LocalizedText disclosure_text = 6;
328
338
  }
329
339
 
330
340
  // Info about the place in which this place is located.
@@ -338,6 +348,63 @@ message Place {
338
348
  string id = 2;
339
349
  }
340
350
 
351
+ // AI-generated summary of the place using user reviews.
352
+ message ReviewSummary {
353
+ // The summary of user reviews.
354
+ google.type.LocalizedText text = 1;
355
+
356
+ // A link where users can flag a problem with the summary.
357
+ string flag_content_uri = 2;
358
+
359
+ // The AI disclosure message "Summarized with Gemini"
360
+ // (and its localized variants). This will be in the language specified in
361
+ // the request if available.
362
+ google.type.LocalizedText disclosure_text = 3;
363
+ }
364
+
365
+ // The summary of amenities near the EV charging station. This only applies to
366
+ // places with type `electric_vehicle_charging_station`. The `overview` field
367
+ // is guaranteed to be provided while the other fields are optional.
368
+ message EvChargeAmenitySummary {
369
+ // An overview of the available amenities. This is guaranteed to be
370
+ // provided.
371
+ ContentBlock overview = 1;
372
+
373
+ // A summary of the nearby coffee options.
374
+ ContentBlock coffee = 2;
375
+
376
+ // A summary of the nearby restaurants.
377
+ ContentBlock restaurant = 3;
378
+
379
+ // A summary of the nearby gas stations.
380
+ ContentBlock store = 4;
381
+
382
+ // A link where users can flag a problem with the summary.
383
+ string flag_content_uri = 5;
384
+
385
+ // The AI disclosure message "Summarized with Gemini"
386
+ // (and its localized variants). This will be in the language specified in
387
+ // the request if available.
388
+ google.type.LocalizedText disclosure_text = 6;
389
+ }
390
+
391
+ // A summary of points of interest near the place.
392
+ message NeighborhoodSummary {
393
+ // An overview summary of the neighborhood.
394
+ ContentBlock overview = 1;
395
+
396
+ // A detailed description of the neighborhood.
397
+ ContentBlock description = 2;
398
+
399
+ // A link where users can flag a problem with the summary.
400
+ string flag_content_uri = 3;
401
+
402
+ // The AI disclosure message "Summarized with Gemini"
403
+ // (and its localized variants). This will be in the language specified in
404
+ // the request if available.
405
+ google.type.LocalizedText disclosure_text = 4;
406
+ }
407
+
341
408
  // This Place's resource name, in `places/{place_id}` format. Can be used to
342
409
  // look up the Place.
343
410
  string name = 1;
@@ -355,17 +422,22 @@ message Place {
355
422
  // https://developers.google.com/maps/documentation/places/web-service/place-types
356
423
  repeated string types = 5;
357
424
 
358
- // The primary type of the given result. This type must one of the Places API
359
- // supported types. For example, "restaurant", "cafe", "airport", etc. A
425
+ // The primary type of the given result. This type must be one of the Places
426
+ // API supported types. For example, "restaurant", "cafe", "airport", etc. A
360
427
  // place can only have a single primary type. For the complete list of
361
428
  // possible values, see Table A and Table B at
362
- // https://developers.google.com/maps/documentation/places/web-service/place-types
429
+ // https://developers.google.com/maps/documentation/places/web-service/place-types.
430
+ // The primary type may be missing if the place's primary type is not a
431
+ // supported type. When a primary type is present, it is always one of the
432
+ // types in the `types` field.
363
433
  string primary_type = 50;
364
434
 
365
435
  // The display name of the primary type, localized to the request language if
366
436
  // applicable. For the complete list of possible values, see Table A and Table
367
437
  // B at
368
- // https://developers.google.com/maps/documentation/places/web-service/place-types
438
+ // https://developers.google.com/maps/documentation/places/web-service/place-types.
439
+ // The primary type may be missing if the place's primary type is not a
440
+ // supported type.
369
441
  google.type.LocalizedText primary_type_display_name = 32;
370
442
 
371
443
  // A human-readable phone number for the place, in national format.
@@ -429,9 +501,14 @@ message Place {
429
501
  // The regular hours of operation. Note that if a place is always open (24
430
502
  // hours), the `close` field will not be set. Clients can rely on always open
431
503
  // (24 hours) being represented as an
432
- // [open][google.maps.places.v1.Place.OpeningHours.Period.open] period
433
- // containing [day][Point.day] with value `0`, [hour][Point.hour] with
434
- // value `0`, and [minute][Point.minute] with value `0`.
504
+ // [`open`](https://developers.google.com/maps/documentation/places/web-service/reference/rest/v1/places#Period)
505
+ // period containing
506
+ // [`day`](https://developers.google.com/maps/documentation/places/web-service/reference/rest/v1/places#Point)
507
+ // with value `0`,
508
+ // [`hour`](https://developers.google.com/maps/documentation/places/web-service/reference/rest/v1/places#Point)
509
+ // with value `0`, and
510
+ // [`minute`](https://developers.google.com/maps/documentation/places/web-service/reference/rest/v1/places#Point)
511
+ // with value `0`.
435
512
  OpeningHours regular_opening_hours = 21;
436
513
 
437
514
  // Number of minutes this place's timezone is currently offset from UTC.
@@ -573,7 +650,7 @@ message Place {
573
650
  // Options of parking provided by the place.
574
651
  ParkingOptions parking_options = 70;
575
652
 
576
- // A list of sub destinations related to the place.
653
+ // A list of sub-destinations related to the place.
577
654
  repeated SubDestination sub_destinations = 71;
578
655
 
579
656
  // Information about the accessibility options a place offers.
@@ -586,20 +663,9 @@ message Place {
586
663
  // Information of ev charging options.
587
664
  EVChargeOptions ev_charge_options = 79;
588
665
 
589
- // Experimental: See
590
- // https://developers.google.com/maps/documentation/places/web-service/experimental/places-generative
591
- // for more details.
592
- //
593
666
  // AI-generated summary of the place.
594
667
  GenerativeSummary generative_summary = 80;
595
668
 
596
- // Experimental: See
597
- // https://developers.google.com/maps/documentation/places/web-service/experimental/places-generative
598
- // for more details.
599
- //
600
- // AI-generated summary of the area that the place is in.
601
- AreaSummary area_summary = 81;
602
-
603
669
  // List of places in which the current place is located.
604
670
  repeated ContainingPlace containing_places = 82;
605
671
 
@@ -610,8 +676,23 @@ message Place {
610
676
  // have a physical address or location on Google Maps.
611
677
  optional bool pure_service_area_business = 83;
612
678
 
679
+ // The address descriptor of the place. Address descriptors include additional
680
+ // information that help describe a location using landmarks and areas. See
681
+ // address descriptor regional coverage in
682
+ // https://developers.google.com/maps/documentation/geocoding/address-descriptors/coverage.
683
+ AddressDescriptor address_descriptor = 84;
684
+
613
685
  // The price range associated with a Place.
614
686
  PriceRange price_range = 86;
687
+
688
+ // AI-generated summary of the place using user reviews.
689
+ ReviewSummary review_summary = 87;
690
+
691
+ // The summary of amenities near the EV charging station.
692
+ EvChargeAmenitySummary ev_charge_amenity_summary = 89;
693
+
694
+ // A summary of points of interest near the place.
695
+ NeighborhoodSummary neighborhood_summary = 91;
615
696
  }
616
697
 
617
698
  // Price level of the place.
@@ -41,9 +41,10 @@ option objc_class_prefix = "GMPSV1";
41
41
  option php_namespace = "Google\\Maps\\Places\\V1";
42
42
 
43
43
  // Service definition for the Places API.
44
- // Note: every request (except for Autocomplete requests) requires a field mask
45
- // set outside of the request proto (`all/*`, is not assumed). The field mask
46
- // can be set via the HTTP header `X-Goog-FieldMask`. See:
44
+ // Note: every request (except for Autocomplete and GetPhotoMedia requests)
45
+ // requires a field mask set outside of the request proto (`all/*`, is not
46
+ // assumed). The field mask can be set via the HTTP header `X-Goog-FieldMask`.
47
+ // See:
47
48
  // https://developers.google.com/maps/documentation/places/web-service/choose-fields
48
49
  service Places {
49
50
  option (google.api.default_host) = "places.googleapis.com";
@@ -19,6 +19,7 @@ package google.maps.places.v1;
19
19
  import "google/api/resource.proto";
20
20
  import "google/maps/places/v1/attribution.proto";
21
21
  import "google/protobuf/timestamp.proto";
22
+ import "google/type/date.proto";
22
23
  import "google/type/localized_text.proto";
23
24
 
24
25
  option csharp_namespace = "Google.Maps.Places.V1";
@@ -61,4 +62,10 @@ message Review {
61
62
 
62
63
  // Timestamp for the review.
63
64
  google.protobuf.Timestamp publish_time = 14;
65
+
66
+ // A link where users can flag a problem with the review.
67
+ string flag_content_uri = 15;
68
+
69
+ // A link to show the review on Google Maps.
70
+ string google_maps_uri = 16;
64
71
  }