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_POINT
및 TRIP_DROPOFF_POINT
가 표시됩니다.
이동을 모니터링하는 동안 TRIP_VEHICLE
가 표시됩니다. 마커 아이콘은 이동의 실제 차량 유형에 따라 변경되지 않습니다. 소비자 SDK는 이동 모니터링 중에 TRIP_VEHICLE
아이콘의 회전을 업데이트하여 경로를 따라 실제 차량의 동작을 모방합니다.
마커 옵션
각 마커에 사용할 수 있는 맞춤설정 가능한 속성은 Google 지도 MarkerOptions
에서 제공하는 속성 집합입니다.
MarkerOptions
는 생성자를 사용하여 빌드되며 맞춤설정된 속성은 'Setter' 스타일 메서드를 사용하여 지정됩니다.
각 속성에 기본값이 제공되므로 맞춤 값만 지정하면 됩니다.
visible
을 false
로 설정하여 마커를 끌 수 있습니다.
자체 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
를 호출하여 기본값을 복원할 수 있습니다. 활성 PolylineOptions
는 getPolylineStyleOptions
메서드를 사용하여 가져올 수 있습니다.
다중선 유형
다음 다중선 유형을 맞춤설정할 수 있습니다.
ACTIVE_ROUTE
REMAINING_ROUTE
ACTIVE_ROUTE
및 REMAINING_ROUTE
는 이동 모니터링 중에 표시되며 차량의 경로를 나타냅니다.
다중선 속성
각 다중선에 사용할 수 있는 맞춤설정 가능한 속성은 Google 지도 PolylineOptions
에서 제공합니다.
PolylineOptions
는 생성자를 사용하여 빌드되며 맞춤설정된 속성은 'Setter' 스타일 메서드를 사용하여 지정됩니다. 각 속성에 기본값이 제공되므로 커스텀 값만 지정하면 됩니다.
visible
을 false
로 설정하여 다중선을 끌 수 있습니다.
예
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()
는 해당 시점의 권장 카메라 경계를 반환합니다. 그런 다음 이 CameraUpdate
를 GoogleMap.moveCamera()
또는 GoogleMap.animateCamera()
의 인수로 제공하면 됩니다.