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

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

요청 예시

교통 상황을 인식하는 폴리라인은 경로 수준과 구간 수준 모두에서 사용할 수 있습니다. 경로 수준에서 교통 속도 정보는 SpeedReadingIntervalsRouteTravelAdvisory 응답 필드 아래에 제공됩니다. 경로의 폴리라인과 함께 교통 정보를 수신하려면 응답 필드 마스크에 polylinespeedReadingIntervals를 모두 포함합니다.

필드 마스크에 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