Android UI 맞춤설정

ConsumerMapStyle 클래스에는 마커와 다중선의 동적 맞춤설정을 제공하는 setter 및 getter 메서드가 있습니다. 이 클래스는 ConsumerController.getConsumerMapStyle() 메서드를 사용하여 비동기식으로 노출됩니다.

UI 맞춤설정은 기기 회전 시에도 유지되며 ConsumerController가 분리될 때까지 계속 적용됩니다.

맞춤 마커

마커 유형 및 속성을 설정하는 메서드는 ConsumerMapStyle.setMarkerStyleOptions()입니다. 맞춤 마커 옵션은 Consumer SDK에서 제공하는 기본값보다 우선 적용됩니다. 기본값을 복원하려면 MarkerOptions 매개변수에 null을 사용하여 setMarkerStyleOptions()를 호출합니다. getMarkerStyleOptions()를 사용하여 활성 MarkerOptions를 검색합니다.

마커 유형

맞춤설정할 수 있는 마커는 다음과 같습니다.

  • TRIP_PICKUP_POINT
  • TRIP_DROPOFF_POINT
  • TRIP_INTERMEDIATE_DESTINATION
  • TRIP_VEHICLE

이동을 모니터링하는 동안 TRIP_PICKUP_POINTTRIP_DROPOFF_POINT가 표시됩니다.

이동을 모니터링하는 동안 TRIP_VEHICLE가 표시됩니다. 마커 아이콘은 이동의 실제 차량 유형에 따라 변경되지 않습니다. 소비자 SDK는 이동 모니터링 중에 TRIP_VEHICLE 아이콘의 회전을 업데이트하여 경로를 따라 실제 차량의 동작을 모방합니다.

마커 옵션

각 마커에 사용할 수 있는 맞춤설정 가능한 속성은 Google 지도 MarkerOptions에서 제공하는 속성 집합입니다.

MarkerOptions는 생성자를 사용하여 빌드되며 맞춤설정된 속성은 'Setter' 스타일 메서드를 사용하여 지정됩니다. 각 속성에 기본값이 제공되므로 맞춤 값만 지정하면 됩니다.

visiblefalse로 설정하여 마커를 끌 수 있습니다. 자체 UI 요소를 대신 사용할 수 있도록 충분한 데이터가 제공되어야 합니다.

Java

// Initializing marker options.
consumerController
    .getConsumerMapStyle()
    .addOnSuccessListener(
        consumerMapStyle -> {
          consumerMapStyle.setMarkerStyleOptions(
              MarkerType.TRIP_VEHICLE,
              new MarkerOptions()
                  .visible(false));
        });

// Reset marker options to default values.
consumerMapStyle.setMarkerStyleOptions(MarkerType.TRIP_VEHICLE, null);

Kotlin

// Initializing marker options.
consumerController
  .getConsumerMapStyle()
  .addOnSuccessListener({ consumerMapStyle ->
    consumerMapStyle.setMarkerStyleOptions(MarkerType.TRIP_VEHICLE, MarkerOptions().visible(false))
  })

// Reset marker options to default values.
consumerMapStyle.setMarkerStyleOptions(MarkerType.TRIP_VEHICLE, null)

맞춤 다중선

다중선 맞춤설정은 ConsumerMapStyle.setPolylineStyleOptions 메서드를 사용하여 설정됩니다. 맞춤 다중선 옵션을 설정하면 Consumer SDK에서 제공하는 기본값이 재정의됩니다. PolylineOptions 매개변수에 null로 setPolylineStyleOptions를 호출하여 기본값을 복원할 수 있습니다. 활성 PolylineOptionsgetPolylineStyleOptions 메서드를 사용하여 가져올 수 있습니다.

다중선 유형

다음 다중선 유형을 맞춤설정할 수 있습니다.

  • ACTIVE_ROUTE
  • REMAINING_ROUTE

ACTIVE_ROUTEREMAINING_ROUTE는 이동 모니터링 중에 표시되며 차량의 경로를 나타냅니다.

다중선 속성

각 다중선에 사용할 수 있는 맞춤설정 가능한 속성은 Google 지도 PolylineOptions에서 제공합니다. PolylineOptions는 생성자를 사용하여 빌드되며 맞춤설정된 속성은 'Setter' 스타일 메서드를 사용하여 지정됩니다. 각 속성에 기본값이 제공되므로 커스텀 값만 지정하면 됩니다. visiblefalse로 설정하여 다중선을 끌 수 있습니다.

Java

// Initializing polyline style options.
consumerController
    .getConsumerMapStyle()
    .addOnSuccessListener(
        consumerMapStyle -> {
          consumerMapStyle.setPolylineStyleOptions(
              PolylineType.ACTIVE_ROUTE,
              new PolylineOptions()
                  .visible(false));
        });

// Reset polyline options to default values.
consumerMapStyle.setPolylineStyleOptions(PolylineType.ACTIVE_ROUTE, null);

Kotlin

// Initializing polyline options.
consumerController
  .getConsumerMapStyle()
  .addOnSuccessListener({ consumerMapStyle ->
    consumerMapStyle.setPolylineStyleOptions(
      PolylineType.ACTIVE_ROUTE,
      PolylineOptions().visible(false)
    )
  })

// Reset polyline options to default values.
consumerMapStyle.setPolylineStyleOptions(PolylineType.ACTIVE_ROUTE, null)

활성 및 남은 경로

이동 및 주문 진행률을 사용 설정하면 앱에서 차량의 활성 경로와 남은 경로를 보여주는 다중선을 사용하여 사용자 환경을 맞춤설정할 수 있습니다.

활성 경로는 차량이 고객의 활성 이동 중 다음 경유지에 도달하기 위해 현재 이동 중인 경로입니다. 나머지 경로는 차량이 활성 경로를 지나 이동하는 경로입니다. 활성 경로 경유지가 마지막 이동 경유지인 경우 남은 경로는 존재하지 않습니다.

활성 및 남은 다중선은 앱에서 맞춤설정하고 공개 상태를 제어할 수 있습니다. 기본적으로 활성 경로는 표시되고 나머지 경로는 표시되지 않습니다.

Java

// Initializing polyline options.
consumerController
    .getConsumerMapStyle()
    .addOnSuccessListener(
        consumerMapStyle -> {
          consumerMapStyle.setPolylineStyleOptions(
              PolylineType.ACTIVE_ROUTE,
              new PolylineOptions()
                  .color(Color.BLUE));
          consumerMapStyle.setPolylineStyleOptions(
              PolylineType.REMAINING_ROUTE,
              new PolylineOptions()
                  .color(Color.BLACK)
                  .width(5)
                  .visible(true));
        });

// Reset polyline options to default values.
consumerMapStyle.setPolylineStyleOptions(PolylineType.ACTIVE_ROUTE, null);
consumerMapStyle.setPolylineStyleOptions(PolylineType.REMAINING_ROUTE, null);

Kotlin

// Initializing polyline options.
consumerController
  .getConsumerMapStyle()
  .addOnSuccessListener({ consumerMapStyle ->
    {
      consumerMapStyle.setPolylineStyleOptions(
        PolylineType.ACTIVE_ROUTE,
        PolylineOptions().color(Color.BLUE)
      )

      consumerMapStyle.setPolylineStyleOptions(
        PolylineType.REMAINING_ROUTE,
        PolylineOptions().color(Color.BLACK).width(5).visible(true)
      )
    }
  })

// Reset polyline options to default values.
consumerMapStyle.setPolylineStyleOptions(PolylineType.ACTIVE_ROUTE, null)

consumerMapStyle.setPolylineStyleOptions(PolylineType.REMAINING_ROUTE, null)

교통정보 인식 다중선

다중선의 교통정보 레이어는 기본적으로 사용 중지되어 있습니다. 이 기능이 사용 설정된 경우 일반적이지 않은 구간을 나타내는 구간이 Z-색인 PolylineOptions.getZIndex()에서 경로 다중선 위에 교통상황에 따른 오프셋을 더해 그 위에 그려집니다.

교통상황은 4가지 속도 유형 중 하나로 표현됩니다. 각 속도 유형의 색상을 맞춤설정할 수 있습니다.

'교통정보 인식 다중선'을 사용 설정하려면 setPolylineTrafficStyle()를 호출하여 ConsumerMapStyle에 전달되는 TrafficStyle 객체를 구성해야 합니다.

Java

// TrafficStyle is part of the Consumer SDK.
TrafficStyle trafficStyle = TrafficStyle.builder()
  .setTrafficVisibility(true)
  .setTrafficColor(SpeedType.NO_DATA, Color.GREY)
  .setTrafficColor(SpeedType.NORMAL_VALUE, Color.BLUE)
  .setTrafficColor(SpeedType.SLOW_VALUE, Color.ORANGE)
  .setTrafficColor(SpeedType.TRAFFIC_JAM, Color.RED)
  .build();

consumerMapStyle.setPolylineTrafficStyle(PolylineType.ACTIVE_ROUTE, trafficStyle);

Kotlin

// TrafficStyle is part of the Consumer SDK.
val trafficStyle =
  TrafficStyle.builder()
    .setTrafficVisibility(true)
    .setTrafficColor(SpeedType.NO_DATA, Color.GREY)
    .setTrafficColor(SpeedType.NORMAL_VALUE, Color.BLUE)
    .setTrafficColor(SpeedType.SLOW_VALUE, Color.ORANGE)
    .setTrafficColor(SpeedType.TRAFFIC_JAM, Color.RED)
    .build()

consumerMapStyle.setPolylineTrafficStyle(PolylineType.ACTIVE_ROUTE, trafficStyle)

여행에 초점을 맞추도록 카메라 확대/축소 조정

Maps SDK에 내장된 기본 내 위치 버튼은 카메라를 기기 위치의 중앙에 배치합니다. 활성 이동 및 주문 진행 세션이 있는 경우 기기 위치가 아닌 여정에 집중하도록 카메라를 중앙에 배치할 수 있습니다.

Android용 소비자 SDK 기본 제공 솔루션: AutoCamera

기기 위치 대신 여정에 집중할 수 있도록 소비자 SDK는 기본적으로 사용 설정되는 AutoCamera 기능을 제공합니다. 카메라가 확대/축소하여 이동 및 주문 진행 경로와 다음 이동 경유지에 초점을 맞춥니다.

카메라 동작 맞춤설정

카메라 동작을 더 세밀하게 제어해야 한다면 ConsumerController.setAutoCameraEnabled()를 사용하여 AutoCamera를 사용 중지하거나 사용 설정하면 됩니다.

ConsumerController.getCameraUpdate()는 해당 시점의 권장 카메라 경계를 반환합니다. 그런 다음 이 CameraUpdateGoogleMap.moveCamera() 또는 GoogleMap.animateCamera()의 인수로 제공하면 됩니다.