폴리라인에서 교통정보 요청

Routes Preferred API를 사용하면 다중선을 따라 교통 상황에 대한 정보를 요청할 수 있습니다. 교통 상황은 응답 다중선의 지정된 간격에 적용되는 속도 카테고리 (NORMAL, SLOW, TRAFFIC_JAM)로 표현됩니다. 간격은 시작 (포함) 및 종료(제외) 다중선 지점의 색인으로 정의됩니다.

요청 예시

교통상황을 반영하는 다중선은 경로 수준과 구간 수준 모두에서 사용할 수 있습니다. 경로 수준에서 교통량 정보는 RouteTravelAdvisory 응답 필드 아래에 SpeedReadingIntervals로 제공됩니다. 경로의 다중선과 함께 교통정보를 수신하려면 응답 필드 마스크에 polyline 및 speedReadingIntervals를 모두 포함합니다.

필드 마스크에 routes.legs.travelAdvisory.speedReadingIntervals가 포함된 경우 응답에는 RouteLegTravelAdvisory 아래에 구간 수준 교통정보 데이터가 포함됩니다.

X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline,routes.travelAdvisory.speedReadingIntervals,routes.legs.polyline.encodedPolyline,routes.legs.travelAdvisory.speedReadingIntervals

응답 필드 마스크 지정에 대한 자세한 내용은 '반환할 필드 선택'을 참고하세요.

응답 예시

필드 마스크를 통해 speedReadingIntervals를 요청하는 한 routes.travelAdvisory.speedReadingIntervals 아래에 채워집니다. 구간 수준 트래픽은 routes.legs.travelAdvisory.speedReadingIntervals에서 확인할 수 있습니다. 모든 간격은 startPolylinePointIndex, endPolylinePointIndex, 해당 속도 카테고리로 설명됩니다. 간격 내에 시작 색인이 없으면 proto3 관행에 따라 색인 0에 해당합니다.

{
  "routes": [
    {
      "legs": {
        "polyline": {
          "encodedPolyline": "}boeF~zbjVAg@EmB`GWHlD"
        },
        "travelAdvisory": {
          "speedReadingIntervals": [
            {
              "endPolylinePointIndex": 1,
              "speed": "NORMAL"
            },
            {
              "startPolylinePointIndex": 1,
              "endPolylinePointIndex": 2,
              "speed": "SLOW"
            },
            {
              "startPolylinePointIndex": 2,
              "endPolylinePointIndex": 4,
              "speed": "NORMAL"
            }
          ] 
        }
      },
      "polyline": {
        "encodedPolyline": "}boeF~zbjVAg@EmB`GWHlD"
      },
      "travelAdvisory": {
        "speedReadingIntervals": [
          {
            "endPolylinePointIndex": 1,
            "speed": "NORMAL"
          },
          {
            "startPolylinePointIndex": 1,
            "endPolylinePointIndex": 2,
            "speed": "SLOW"
          },
          {
            "startPolylinePointIndex": 2,
            "endPolylinePointIndex": 4,
            "speed": "NORMAL"
          }
        ] 
      }
    }
  ]
}

Maps SDK를 사용하여 교통정보를 반영하는 다중선 렌더링

폴리라인 구간에 따른 맞춤 색상, 획, 패턴 등 Google Maps SDK에서 제공하는 다양한 기능을 사용하여 지도에 교통정보를 반영하는 다중선을 표시하는 것이 좋습니다. 다중선 사용에 관한 자세한 내용은 Android용 다중선 기능 및 iOS용 다중선 기능을 참고하세요.

다중선 렌더링 예시

Maps SDK 사용자는 속도 카테고리와 다중선 렌더링 스키마 간에 맞춤설정된 매핑 로직을 정의할 수 있습니다. 예를 들어 'NORMAL' 속도는 지도에 굵은 파란색 선으로 표시하고 'SLOW' 속도는 굵은 주황색 선으로 표시하는 등의 방법을 사용할 수 있습니다.

다음 스니펫은 멜버른에서 퍼스까지의 최단 거리 보간을 파란색의 굵은 다중선으로 추가합니다. 자세한 내용은 모양 맞춤설정 (Android) 및 다중선 맞춤설정 (iOS)을 참고하세요.

Android

자바

Polyline line = map.addPolyline(new PolylineOptions()
    .add(new LatLng(-37.81319, 144.96298), new LatLng(-31.95285, 115.85734))
    .width(25)
    .color(Color.BLUE)
    .geodesic(true));

Kotlin

val line: Polyline = map.addPolyline(
  PolylineOptions()
    .add(LatLng(-37.81319, 144.96298), LatLng(-31.95285, 115.85734))
    .width(25f)
    .color(Color.BLUE)
    .geodesic(true)
)

iOS

Objective-C

GMSMutablePath *path = [GMSMutablePath path];
[path addLatitude:-37.81319 longitude:144.96298];
[path addLatitude:-31.95285 longitude:115.85734];
GMSPolyline *polyline = [GMSPolyline polylineWithPath:path];
polyline.strokeWidth = 10.f;
polyline.strokeColor = .blue;
polyline.geodesic = YES;
polyline.map = mapView;

Swift

let path = GMSMutablePath()
path.addLatitude(-37.81319, longitude: 144.96298)
path.addLatitude(-31.95285, longitude: 115.85734)
let polyline = GMSPolyline(path: path)
polyline.strokeWidth = 10.0
polyline.geodesic = true
polyline.map = mapView