ConsumerMapStyle
sınıfı, işaretçiler ve çoklu çizgiler için dinamik özelleştirme olanağı sunan setter ve getter yöntemlerine sahiptir. Bu sınıf, ConsumerController.getConsumerMapStyle()
yöntemi kullanılarak eşzamansız olarak sunulmaktadır.
Kullanıcı arayüzü özelleştirmesi, cihaz döndürme işlemleri arasında devam eder ve ConsumerController
çıkarılana kadar geçerli olur.
Özel işaretçiler
İşaretçi türünü ve özelliklerini ayarlama yöntemi ConsumerMapStyle.setMarkerStyleOptions()
şeklindedir. Özel işaretçi seçenekleriniz, Tüketici SDK'sı tarafından sağlanan varsayılan değerleri geçersiz kılar.
Varsayılan değerleri geri yüklemek amacıyla MarkerOptions
parametresi için null kullanarak setMarkerStyleOptions()
yöntemini çağırın. getMarkerStyleOptions()
kullanarak etkin MarkerOptions
bilgisini alın.
İşaretçi türleri
Özelleştirme için aşağıdaki işaretçiler kullanılabilir:
TRIP_PICKUP_POINT
TRIP_DROPOFF_POINT
TRIP_INTERMEDIATE_DESTINATION
TRIP_VEHICLE
Gezi izleme sırasında TRIP_PICKUP_POINT
ve TRIP_DROPOFF_POINT
gösterilir.
Gezi izleme sırasında TRIP_VEHICLE
ekranları İşaretçi simgesi, yolculuğun asıl
aracının türüne göre değişmez. Tüketici SDK'sı, gezi izleme sırasında TRIP_VEHICLE
simgesinin dönüşünü güncelleyerek gerçek aracın rotayı gezerken davranışını taklit eder.
İşaretçi seçenekleri
Her bir işaretçi için kullanılabilecek özelleştirilebilir özellikler, Google Haritalar MarkerOptions
tarafından sağlanan tesis grubudur.
MarkerOptions
, kurucusu kullanılarak oluşturulur ve özelleştirilmiş özellikler, "Setter" stili yöntemler kullanılarak belirtilir.
Her bir özellik için varsayılan değerler sağlandığından, yalnızca özel değerler belirtmeniz gerekir.
visible
ayarını false
yaparak işaretçiyi kapatabilirsiniz.
Bunun yerine kendi kullanıcı arayüzü öğenizi kullanabilmeniz için yeterli miktarda veri sağlanmalıdır.
Örnek
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)
Özel çoklu çizgiler
Çoklu çizgi özelleştirme ConsumerMapStyle.setPolylineStyleOptions
yöntemi kullanılarak ayarlanır. Özel çoklu çizgi seçeneklerinin ayarlanması, Tüketici SDK'sı tarafından sağlanan varsayılan değerleri geçersiz kılar. Varsayılan değerler, PolylineOptions
parametresi için null ile setPolylineStyleOptions
çağrısı yapılarak geri yüklenebilir. Etkin PolylineOptions
, getPolylineStyleOptions
yöntemi kullanılarak alınabilir.
Çoklu çizgi türleri
Özelleştirme için aşağıdaki çoklu çizgi türleri kullanılabilir:
ACTIVE_ROUTE
REMAINING_ROUTE
Gezi izleme sırasında ACTIVE_ROUTE
ve REMAINING_ROUTE
görüntülenir ve araç rotasını temsil eder.
Çoklu Çizgi Özellikleri
Her bir çoklu çizgi için özelleştirilebilir özellikler Google Haritalar PolylineOptions
tarafından sağlanır.
PolylineOptions
, kurucusu kullanılarak oluşturulur ve özelleştirilmiş özellikler, "Setter" stili yöntemler kullanılarak belirtilir. Her bir özellik için varsayılan değerler sağlandığı için yalnızca özel değerler belirtmeniz gerekir.
visible
değerini false
olarak ayarlayarak çoklu çizgiyi devre dışı bırakabilirsiniz.
Örnek
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)
Etkin ve Kalan Rota
Yolculuk ve Sipariş İlerleme Durumu etkinleştirildiğinde uygulamanız, araçlarınızın aktif ve kalan rotayı gösteren çoklu çizgileri kullanarak kullanıcının deneyimini özelleştirebilir.
Aktif rota, tüketicinin aktif yolculuğunda bir sonraki ara noktaya ulaşmak için aracın şu anda ilerlediği yoldur. Kalan rota, aracın etkin rotadan sonra kat edeceği yoldur. Etkin rota ara noktası son gezi ara noktası olduğunda, kalan rota mevcut değildir.
Etkin ve kalan çoklu çizgilerin özelleştirilmesi ve görünürlüğü uygulamanız tarafından kontrol edilebilir. Varsayılan olarak, etkin rota görünür, kalan rota ise görünmez.
Örnek
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)
Trafiğe duyarlı çoklu çizgiler
Çoklu çizginin trafik katmanı varsayılan olarak devre dışıdır. Etkinleştirildiğinde, normal olmayan trafik alanlarını temsil eden segmentler, z-endeksi PolylineOptions.getZIndex()lerdeki rota çoklu çizgisinin yanı sıra trafik durumuna bağlı olarak belirli uzaklıkta kopyasının üzerine çizilir.
Trafik koşulları dört hız türünden biriyle gösterilir. Her bir hız türü için rengi özelleştirebilirsiniz.
"Trafiğe duyarlı çoklu çizgileri" etkinleştirmek için bir TrafficStyle
nesnesi oluşturmanız gerekir. Bu nesne, setPolylineTrafficStyle()
çağrısıyla ConsumerMapStyle
nesnesine aktarılır.
Örnek
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)
Yolculuğa odaklanmak için kameranın yakınlaştırmasını ayarlama
Haritalar SDK'sında yerleşik olarak bulunan varsayılan Konumum düğmesi, kamerayı cihaz konumuna ortalar. Aktif bir Gezi ve Sipariş İlerlemesi oturumu varsa cihazın konumu yerine yolculuğu odaklamak için kamerayı ortalamak isteyebilirsiniz.
Android için tüketici SDK'sı yerleşik çözümü: AutoKamera
Tüketici SDK'sı, cihazın konumu yerine yolculuğa odaklanmanızı sağlamak için varsayılan olarak etkinleştirilmiş bir Otomatik Kamera özelliği sunar. Kamera yakınlaştırarak Seyahat ve Sipariş İlerlemesi rotasına ve bir sonraki gezi ara noktasına odaklanır.
Kamera davranışını özelleştirme
Kamera davranışı üzerinde daha fazla kontrole ihtiyacınız varsa ConsumerController.setAutoCameraEnabled()
aracını kullanarak AutoKamera'yı devre dışı bırakabilir veya etkinleştirebilirsiniz.
ConsumerController.getCameraUpdate()
, o andaki önerilen kamera sınırlarını döndürür. Daha sonra bu CameraUpdate
öğesini, GoogleMap.moveCamera()
veya GoogleMap.animateCamera()
işlevine bağımsız değişken olarak sağlayabilirsiniz.