Skip to content

Commit cbc359c

Browse files
feat: [places] add transit_station data to Places API (New) (#8363)
* feat: add transit_station data to Places API (New) PiperOrigin-RevId: 921754257 Source-Link: googleapis/googleapis@fd712de Source-Link: googleapis/googleapis-gen@5e976c3 Copy-Tag: eyJwIjoicGFja2FnZXMvZ29vZ2xlLW1hcHMtcGxhY2VzLy5Pd2xCb3QueWFtbCIsImgiOiI1ZTk3NmMzYjM2Yzg5NzE1ZTIyY2ZlY2U5MDMzMmZhNGJkM2Q3OTUwIn0= * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
1 parent ecec52d commit cbc359c

6 files changed

Lines changed: 2885 additions & 0 deletions

File tree

packages/google-maps-places/protos/google/maps/places/v1/place.proto

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import "google/maps/places/v1/fuel_options.proto";
2525
import "google/maps/places/v1/photo.proto";
2626
import "google/maps/places/v1/price_range.proto";
2727
import "google/maps/places/v1/review.proto";
28+
import "google/maps/places/v1/transit.proto";
2829
import "google/protobuf/timestamp.proto";
2930
import "google/type/date.proto";
3031
import "google/type/datetime.proto";
@@ -788,6 +789,9 @@ message Place {
788789
// times, this field will represent the first moved Place. This field will not
789790
// be populated if this Place has not moved.
790791
string moved_place_id = 94;
792+
793+
// The transit station information for the place.
794+
TransitStation transit_station = 98;
791795
}
792796

793797
// Price level of the place.
Lines changed: 212 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,212 @@
1+
// Copyright 2026 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/protobuf/duration.proto";
20+
import "google/protobuf/timestamp.proto";
21+
import "google/type/latlng.proto";
22+
import "google/type/localized_text.proto";
23+
24+
option csharp_namespace = "Google.Maps.Places.V1";
25+
option go_package = "cloud.google.com/go/maps/places/apiv1/placespb;placespb";
26+
option java_multiple_files = true;
27+
option java_outer_classname = "TransitProto";
28+
option java_package = "com.google.maps.places.v1";
29+
option objc_class_prefix = "GMPSV1";
30+
option php_namespace = "Google\\Maps\\Places\\V1";
31+
32+
// Represents transit-specific information for a place.
33+
message TransitStation {
34+
// The name of the station in the local language.
35+
google.type.LocalizedText display_name = 1;
36+
37+
// The transit agencies that serve this station.
38+
repeated TransitAgency agencies = 2;
39+
40+
// Transit stops at this station.
41+
repeated TransitStop stops = 3;
42+
}
43+
44+
// Represents a transit agency.
45+
message TransitAgency {
46+
// Agency name (e.g. "VTA") in the requested language.
47+
google.type.LocalizedText display_name = 1;
48+
49+
// The URL of the agency's homepage.
50+
string url = 2;
51+
52+
// The URL of the agency's fare details page.
53+
string fare_url = 3;
54+
55+
// Icon identifier for localized branded icon of a transit system (e.g. London
56+
// Underground) which should be used instead of TransitLine.vehicle_icon in
57+
// the UI.
58+
TransitIcon icon = 4;
59+
60+
// The transit lines that are served by this agency.
61+
repeated TransitLine lines = 5;
62+
}
63+
64+
// Represents a single transit line.
65+
message TransitLine {
66+
// The id of the transit line that can be used to uniquely identify the line
67+
// among other transit lines in the same transit station. This identifier is
68+
// not guaranteed to be stable across different responses.
69+
string id = 1;
70+
71+
// The type of vehicle for a transit line.
72+
enum VehicleType {
73+
// Default value when vehicle type is not specified.
74+
VEHICLE_TYPE_UNSPECIFIED = 0;
75+
76+
// Rail.
77+
RAIL = 1;
78+
79+
// Metro rail.
80+
METRO_RAIL = 2;
81+
82+
// Subway.
83+
SUBWAY = 3;
84+
85+
// Tram.
86+
TRAM = 4;
87+
88+
// Monorail.
89+
MONORAIL = 5;
90+
91+
// Heavy rail.
92+
HEAVY_RAIL = 6;
93+
94+
// Commuter train.
95+
COMMUTER_TRAIN = 7;
96+
97+
// High speed train.
98+
HIGH_SPEED_TRAIN = 8;
99+
100+
// Long distance train.
101+
LONG_DISTANCE_TRAIN = 9;
102+
103+
// Bus.
104+
BUS = 10;
105+
106+
// Intercity bus.
107+
INTERCITY_BUS = 11;
108+
109+
// Trolleybus.
110+
TROLLEYBUS = 12;
111+
112+
// Share taxi.
113+
SHARE_TAXI = 13;
114+
115+
// Coach.
116+
COACH = 14;
117+
118+
// Ferry.
119+
FERRY = 15;
120+
121+
// Cable car.
122+
CABLE_CAR = 16;
123+
124+
// Gondola lift.
125+
GONDOLA_LIFT = 17;
126+
127+
// Funicular.
128+
FUNICULAR = 18;
129+
130+
// Special.
131+
SPECIAL = 19;
132+
133+
// Horse carriage.
134+
HORSE_CARRIAGE = 20;
135+
136+
// Airplane.
137+
AIRPLANE = 21;
138+
}
139+
140+
// The type of vehicle using this line.
141+
VehicleType vehicle_type = 2;
142+
143+
// The long name for this transit line (e.g. "Sunnydale local").
144+
google.type.LocalizedText display_name = 3;
145+
146+
// The short name for this transit line (e.g. "S2").
147+
google.type.LocalizedText short_display_name = 4;
148+
149+
// The text color of labels for this transit line in #RRGGBB hex format,
150+
// e.g. #909CE1.
151+
string text_color = 5;
152+
153+
// The background color of the labels for this transit line in #RRGGBB hex
154+
// format, e.g. #909CE1. This color can also be used for drawing shapes for
155+
// this transit line.
156+
string background_color = 6;
157+
158+
// The URL of a webpage with details about this line.
159+
string url = 7;
160+
161+
// Icon identifier for this particular line (e.g. subway lines in New York).
162+
TransitIcon icon = 8;
163+
164+
// Icon identifier for this particular vehicle type.
165+
TransitIcon vehicle_icon = 9;
166+
}
167+
168+
// Represents a transit stop within a station. This is a specific location
169+
// where passengers board and alight transit vehicles, such as a platform or
170+
// bus bay. This is distinct from a `Departure`, which is an event of a vehicle
171+
// leaving a stop at a specific time.
172+
message TransitStop {
173+
// The id of the transit stop that can be used to uniquely identify the stop
174+
// among other transit stops in the same transit station. This identifier is
175+
// not guaranteed to be stable across different responses.
176+
string id = 1;
177+
178+
// The name of the stop.
179+
google.type.LocalizedText display_name = 2;
180+
181+
// The platform code represented by this stop. It can be formatted in any way.
182+
// (eg: "2", "Platform 2", "2-4", or "1x").
183+
google.type.LocalizedText platform_code = 3;
184+
185+
// The verbatim text written on the signboard for this platform, e.g. "Towards
186+
// Central" or "East side & Brooklyn". When `platform_code` is absent, this
187+
// field is potentially the only identifier for the platform; however, both
188+
// `platform_code` and `signage_text` may be set simultaneously.
189+
google.type.LocalizedText signage_text = 4;
190+
191+
// Human readable identifier of the stop, used by transit agencies to
192+
// distinguish stops with the same name.
193+
google.type.LocalizedText stop_code = 5;
194+
195+
// The stop's location.
196+
google.type.LatLng location = 6;
197+
198+
// Wheelchair accessibility of this stop. This field indicates whether there
199+
// is an accessible path from outside the station to the stop. It does not
200+
// indicate whether it is possible to board a vehicle from the stop.
201+
optional bool wheelchair_accessible_entrance = 7;
202+
}
203+
204+
// Icon for a transit line, vehicle, or agency.
205+
message TransitIcon {
206+
// The URL of the icon.
207+
string url = 1;
208+
209+
// Whether the name is contained in the icon and there is no need to display
210+
// it next to the icon.
211+
bool name_included = 2;
212+
}

0 commit comments

Comments
 (0)