Android Kullanıcı Arayüzü Özelleştirmesi

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.