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

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

요청 예

트래픽 인식 다중선은 경로 수준과 구간 수준 모두에서 사용할 수 있습니다. 경로 수준에서 교통 속도 정보는 RouteTravelAdvisory 응답 필드 아래에 SpeedReadingIntervals로 제공됩니다. 경로의 다중선과 함께 교통정보를 수신하려면 응답 필드 마스크에 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 지도 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