대중교통 경로 확인

대중교통 경로는 해당 지역에서 사용할 수 있는 대중교통 옵션을 사용한 내비게이션 안내를 제공합니다. 대중교통 옵션에는 버스, 지하철, 기차 등이 있습니다. 대중교통 경로에는 일반적으로 대중교통 역을 오고 갈 수도 있고 역 사이를 걸어가는 방법도 포함됩니다. 대중교통 경로는 일반적으로 둘 이상의 이동 수단을 사용하여 이동해야 하므로 경로를 요청하는 방법과 응답의 일부가 다릅니다.

대중교통 경로와 다른 경로의 차이점

transit의 travelMode를 설정하여 요청하는 대중교통 경로는 다른 travelMode 옵션을 사용하는 경로와 다릅니다. 동일한 객체와 옵션을 모두 요청할 수는 없으며, 다른 경로와 비교했을 때 응답은 다른 필드를 반환합니다.

Routes API에서 단계는 모든 유형의 이동에서 일관되게 하나의 탐색 안내입니다. 따라서 각 탐색 안내는 단계입니다. 대중교통 경로 응답은 다른 이동 수단을 사용하는 경로와 매우 유사하지만 다음과 같은 몇 가지 주요 차이점이 있습니다.

요청 차이 응답 차이
중간 경유지는 지정할 수 없습니다. 대중교통 세부정보가 포함됩니다.
친환경 경로를 가져올 수 없음 `stepsOverview`에 해당 이동 수단의 단계 요약이 포함된 각 이동 수단의 메타데이터를 포함합니다 (이 메타데이터를 요청하려면 `routes.legs.stepsOverview` 필드 마스크를 사용).
교통정보 데이터 포함 여부 및 방법을 지정할 수 없습니다.
피할 경로 지형지물을 지정할 수 없습니다.
routingPreference에는 transitPreferences만 지정할 수 있습니다. 자세한 내용은 [TransitPreferences](reference/rest/v2/TransitPreferences)를 참고하세요.

Routes API에서 반환하는 응답에 대한 자세한 내용은 대중교통 경로 응답 검토를 참고하세요.

대중교통 경로 확인 방법

  1. 출발지와 목적지를 설정합니다.

  2. 이동 수단을 대중교통으로 설정합니다.

    travelMode: "TRANSIT"

  3. 원하는 응답 필드를 가져오려면 필드 마스크를 추가합니다. 필요한 대중교통 경로 필드 요청을 참고하세요.

  4. 필요한 경우 선택적 매개변수를 설정합니다. 대중교통 경로에 대한 매개변수 설정을 참고하세요.

필요한 대중교통 경로 필드 요청

필드 마스크를 사용하여 필요한 대중교통 경로 필드를 요청합니다. 다음 표에는 대중교통 경로에 권장되는 몇 가지 응답과 이를 요청하는 데 사용할 필드 마스크가 포함되어 있습니다.

정보 요청 이 필드 마스크 사용
모든 경로 세부정보 routes.*
모든 대중교통 세부정보 routes.legs.steps.transitDetails
각 구간의 시작 위치 routes.legs.steps.startLocation
각 구간의 종료 위치 routes.legs.steps.endLocation
각 단계의 경로 다중선 routes.legs.steps.polyline
단계별 대중교통 유형 routes.legs.steps.travelMode
단계 및 경로별 예상 요금, 현지 예상 요금 routes.travel_advisory.transitFare localized routes.localizedValues.transitFare

참고: transitFare는 API가 모든 단계의 대중교통 요금 정보를 확인할 수 있는 경우에만 제공됩니다.

소요 시간 및 거리의 현지화된 텍스트 routes.localizedValues

필드 마스크 설정에 대한 자세한 내용은 반환할 필드 선택을 참조하세요.

대중교통 경로에 대한 매개변수 설정

대중교통 경로에 대한 관련 매개변수는 다음과 같습니다.

요청할 작업 이 매개변수 사용 Notes
교통수단 선택 travelMode: "TRANSIT" 필수 항목입니다. 자세히 알아보기
도착 또는 출발 시간 설정 "arrivalTime": "yyyy-mm-ddThh:mm:ssZ"

또는

"departureTime": "yyyy-mm-ddThh:mm:ssZ"
선택사항입니다. arrival_time 또는 departure_time을 지정할 수 있습니다. 둘 다 지정되지 않으면 departure_time의 기본값은 현재 실행 시간 (now)입니다. 도착 시간과 출발 시간은 현재 실행 시간 (now)을 참조로 사용하여 다음 기간 내에서만 설정할 수 있습니다.
  • now 이전 7일 이내
  • now 이후 100일 이하
시간은 RFC3339 UTC 'Zulu' 형식의 타임스탬프로 표현됩니다. 자세히 알아보기
대체 경로 포함 "computeAlternativeRoutes": true 선택사항입니다. 가능한 경우 Routes API가 최대 3개의 추가 경로를 계산하도록 하려면 true로 설정합니다. 자세히 알아보기
대중교통 유형에 대한 환경설정 지정 "transitPreferences": { allowedTravelModes: ["BUS","SUBWAY","TRAIN","LIGHT_RAIL","RAIL"]}

참고: 선호하는 이동 수단을 지정해도 경로의 효율성과 선호하는 이동 수단의 사용 가능 여부에 따라 반환된 경로에서 다른 대중교통 수단을 계속 사용할 수 있으며 다른 대중교통 수단만 사용할 수도 있습니다.

선택사항입니다. 선호하는 대중교통 이동 모드를 지정합니다. 자세히 알아보기
대중교통 경로의 환경설정을 지정합니다. "transitPreferences": {routingPreference: "LESS_WALKING|FEWER_TRANSFERS"} 선택사항입니다. 대중교통 경로 환경설정을 지정합니다. 자세히 알아보기

예: 대중교통 경로 찾기

다음 예는 다음 매개변수를 사용하여 대중교통 경로를 가져옵니다.

  • 기차 및 최소 도보시간에 대한 환경설정을 지정합니다.

  • 대체 경로를 요청합니다.

  • 대중교통 세부정보를 반환하는 필드 마스크를 제공합니다.

curl -X POST -H 'content-type: application/json' -d '{
  "origin": {
    "address": "Humberto Delgado Airport, Portugal"
  },
  "destination": {
    "address": "Basílica of Estrela, Praça da Estrela, 1200-667 Lisboa, Portugal"
  },
  "travelMode": "TRANSIT",
  "computeAlternativeRoutes": true,
  "transitPreferences": {
     routingPreference: "LESS_WALKING",
     allowedTravelModes: ["TRAIN"]
  },
}' \
-H 'Content-Type: application/json' \
-H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H 'X-Goog-FieldMask: routes.legs.steps.transitDetails' \
'https://routes.googleapis.com/directions/v2:computeRoutes'

응답에 두 경로에 대한 route.legs.steps.transitDetails 필드가 표시됩니다.

{
  "routes": [
    {
    "legs": [
        {
        "steps": [
          {},
          {},
          {},
          {
          "transitDetails": {
            "stopDetails": {
            "arrivalStop": {
              "name": "Saldanha",
              "location": {
                "latLng": {
                  "latitude": 38.73532,
                  "longitude": -9.14543
                }
              }
            },
            "arrivalTime": "2023-08-26T10:49:42Z",
            "departureStop": {
              "name": "Aeroporto",
              "location": {
                "latLng": {
                  "latitude": 38.769047799999996,
                  "longitude": -9.1284593
                }
              }
            },
            "departureTime": "2023-08-26T10:32:10Z"
              },
              "localizedValues": {
              "arrivalTime": {
                  "time": {
                    "text": "11:49"
                  },
                  "timeZone": "Europe/Lisbon"
              },
              "departureTime": {
                "time": {
                  "text": "11:32"
                },
                "timeZone": "Europe/Lisbon"
              }
            },
              "headsign": "São Sebastião",
              "transitLine": {
                "agencies": [
                  {
                    "name": "Metropolitano de Lisboa, E.P.E.",
                    "phoneNumber": "+351 21 350 0115",
                    "uri": "https://www.metrolisboa.pt/"
                  }
                ],
                "name": "Vermelha",
                "color": "#f23061",
                "nameShort": "Vm",
                "textColor": "#000000",
                "vehicle": {
                  "name": {
                    "text": "Metrô"
                  },
                "type": "SUBWAY",
                "iconUri": "//maps.gstatic.com/mapfiles/transit/iw2/6/subway2.png"
                }
              },
              "stopCount": 11
            }
          },
        {},
        {
          "transitDetails": {
            "stopDetails": {
              "arrivalStop": {
                "name": "Rato",
                "location": {
                  "latLng": {
                    "latitude": 38.7201022,
                    "longitude": -9.1540562
                  }
              }
            },
            "arrivalTime": "2023-08-26T11:01:37Z",
            "departureStop": {
              "name": "Saldanha",
                "location": {
                  "latLng": {
                    "latitude": 38.73527,
                    "longitude": -9.1455200000000012
                  }
                }
              },
              "departureTime": "2023-08-26T10:57:57Z"
            },
            "localizedValues": {
              "arrivalTime": {
                "time": {
                  "text": "12:01"
                },
                "timeZone": "Europe/Lisbon"
              },
              "departureTime": {
                "time": {
                  "text": "11:57"
                },
                "timeZone": "Europe/Lisbon"
              }
            },
            "headsign": "Rato",
            "transitLine": {
              "agencies": [
                {
                "name": "Metropolitano de Lisboa, E.P.E.",
                "phoneNumber": "+351 21 350 0115",
                "uri": "https://www.metrolisboa.pt/"
                }
              ],
              "name": "Amarela",
              "color": "#f2c200",
              "nameShort": "Am",
              "textColor": "#000000",
              "vehicle": {
                "name": {
                  "text": "Metrô"
                },
                "type": "SUBWAY",
                "iconUri": "//maps.gstatic.com/mapfiles/transit/iw2/6/subway2.png"
              }
            },
            "stopCount": 4
          }
        },
        {},
        {},
        {},
        {},
        {},
        {}
        ]
      }
    ]
  }
]
}