Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import "google/maps/places/v1/fuel_options.proto";
import "google/maps/places/v1/photo.proto";
import "google/maps/places/v1/price_range.proto";
import "google/maps/places/v1/review.proto";
import "google/maps/places/v1/transit.proto";
import "google/protobuf/timestamp.proto";
import "google/type/date.proto";
import "google/type/datetime.proto";
Expand Down Expand Up @@ -788,6 +789,9 @@ message Place {
// times, this field will represent the first moved Place. This field will not
// be populated if this Place has not moved.
string moved_place_id = 94;

// The transit station information for the place.
TransitStation transit_station = 98;
}

// Price level of the place.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,212 @@
// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

syntax = "proto3";

package google.maps.places.v1;

import "google/protobuf/duration.proto";
import "google/protobuf/timestamp.proto";
import "google/type/latlng.proto";
import "google/type/localized_text.proto";

option csharp_namespace = "Google.Maps.Places.V1";
option go_package = "cloud.google.com/go/maps/places/apiv1/placespb;placespb";
option java_multiple_files = true;
option java_outer_classname = "TransitProto";
option java_package = "com.google.maps.places.v1";
option objc_class_prefix = "GMPSV1";
option php_namespace = "Google\\Maps\\Places\\V1";

// Represents transit-specific information for a place.
message TransitStation {
// The name of the station in the local language.
google.type.LocalizedText display_name = 1;

// The transit agencies that serve this station.
repeated TransitAgency agencies = 2;

// Transit stops at this station.
repeated TransitStop stops = 3;
}

// Represents a transit agency.
message TransitAgency {
// Agency name (e.g. "VTA") in the requested language.
google.type.LocalizedText display_name = 1;

// The URL of the agency's homepage.
string url = 2;

// The URL of the agency's fare details page.
string fare_url = 3;

// Icon identifier for localized branded icon of a transit system (e.g. London
// Underground) which should be used instead of TransitLine.vehicle_icon in
// the UI.
TransitIcon icon = 4;

// The transit lines that are served by this agency.
repeated TransitLine lines = 5;
}

// Represents a single transit line.
message TransitLine {
// The id of the transit line that can be used to uniquely identify the line
// among other transit lines in the same transit station. This identifier is
// not guaranteed to be stable across different responses.
string id = 1;

// The type of vehicle for a transit line.
enum VehicleType {
// Default value when vehicle type is not specified.
VEHICLE_TYPE_UNSPECIFIED = 0;

// Rail.
RAIL = 1;

// Metro rail.
METRO_RAIL = 2;

// Subway.
SUBWAY = 3;

// Tram.
TRAM = 4;

// Monorail.
MONORAIL = 5;

// Heavy rail.
HEAVY_RAIL = 6;

// Commuter train.
COMMUTER_TRAIN = 7;

// High speed train.
HIGH_SPEED_TRAIN = 8;

// Long distance train.
LONG_DISTANCE_TRAIN = 9;

// Bus.
BUS = 10;

// Intercity bus.
INTERCITY_BUS = 11;

// Trolleybus.
TROLLEYBUS = 12;

// Share taxi.
SHARE_TAXI = 13;

// Coach.
COACH = 14;

// Ferry.
FERRY = 15;

// Cable car.
CABLE_CAR = 16;

// Gondola lift.
GONDOLA_LIFT = 17;

// Funicular.
FUNICULAR = 18;

// Special.
SPECIAL = 19;

// Horse carriage.
HORSE_CARRIAGE = 20;

// Airplane.
AIRPLANE = 21;
}

// The type of vehicle using this line.
VehicleType vehicle_type = 2;

// The long name for this transit line (e.g. "Sunnydale local").
google.type.LocalizedText display_name = 3;

// The short name for this transit line (e.g. "S2").
google.type.LocalizedText short_display_name = 4;

// The text color of labels for this transit line in #RRGGBB hex format,
// e.g. #909CE1.
string text_color = 5;

// The background color of the labels for this transit line in #RRGGBB hex
// format, e.g. #909CE1. This color can also be used for drawing shapes for
// this transit line.
string background_color = 6;

// The URL of a webpage with details about this line.
string url = 7;

// Icon identifier for this particular line (e.g. subway lines in New York).
TransitIcon icon = 8;

// Icon identifier for this particular vehicle type.
TransitIcon vehicle_icon = 9;
}

// Represents a transit stop within a station. This is a specific location
// where passengers board and alight transit vehicles, such as a platform or
// bus bay. This is distinct from a `Departure`, which is an event of a vehicle
// leaving a stop at a specific time.
message TransitStop {
// The id of the transit stop that can be used to uniquely identify the stop
// among other transit stops in the same transit station. This identifier is
// not guaranteed to be stable across different responses.
string id = 1;

// The name of the stop.
google.type.LocalizedText display_name = 2;

// The platform code represented by this stop. It can be formatted in any way.
// (eg: "2", "Platform 2", "2-4", or "1x").
google.type.LocalizedText platform_code = 3;

// The verbatim text written on the signboard for this platform, e.g. "Towards
// Central" or "East side & Brooklyn". When `platform_code` is absent, this
// field is potentially the only identifier for the platform; however, both
// `platform_code` and `signage_text` may be set simultaneously.
google.type.LocalizedText signage_text = 4;

// Human readable identifier of the stop, used by transit agencies to
// distinguish stops with the same name.
google.type.LocalizedText stop_code = 5;

// The stop's location.
google.type.LatLng location = 6;

// Wheelchair accessibility of this stop. This field indicates whether there
// is an accessible path from outside the station to the stop. It does not
// indicate whether it is possible to board a vehicle from the stop.
optional bool wheelchair_accessible_entrance = 7;
}

// Icon for a transit line, vehicle, or agency.
message TransitIcon {
// The URL of the icon.
string url = 1;

// Whether the name is contained in the icon and there is no need to display
// it next to the icon.
bool name_included = 2;
}
Loading
Loading