התאמה אישית של ממשק המשתמש ב-Android

במחלקה ConsumerMapStyle יש שיטות מגדירות ומקבלות אפשרויות, שמאפשרות התאמה אישית דינמית של סמנים וקווים מרובים. המחלקה הזו נחשפת באופן אסינכרוני באמצעות השיטה ConsumerController.getConsumerMapStyle().

ההתאמה האישית של ממשק המשתמש נשמרת בכל סבבי המכשירים ותישאר בתוקף עד לניתוק של ConsumerController.

סמנים בהתאמה אישית

השיטה להגדרת סוג הסמן והמאפיינים שלו היא ConsumerMapStyle.setMarkerStyleOptions(). האפשרויות של הסמנים המותאמים אישית מבטלות את ערכי ברירת המחדל שסופקו על ידי ה-SDK של הצרכן. כדי לשחזר את ערכי ברירת המחדל, צריך לקרוא לפונקציה setMarkerStyleOptions() עם הערך null לפרמטר MarkerOptions. מאחזרים את השדה MarkerOptions הפעיל באמצעות getMarkerStyleOptions().

סוגי סמנים

הסמנים הבאים זמינים להתאמה אישית:

  • 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 נוצר באמצעות ה-constructor שלו, והמאפיינים המותאמים אישית מצוינים באמצעות שיטות הסגנון Setter. ערכי ברירת המחדל מסופקים לכל נכס, לכן צריך לציין רק ערכים מותאמים אישית.

כדי להשבית סמן, צריך להגדיר את visible לערך false. יש לספק מספיק נתונים כדי לאפשר לכם להשתמש ברכיב ממשק משתמש משלכם במקומו.

דוגמה

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)

קווים פוליגוניים מותאמים אישית

התאמה אישית של Polyline מוגדרת באמצעות השיטה ConsumerMapStyle.setPolylineStyleOptions. הגדרת אפשרויות של פוליגונים בהתאמה אישית מבטלת את ערכי ברירת המחדל שסופקו על ידי ה-SDK של הצרכן. כדי לשחזר את ערכי ברירת המחדל, אפשר להפעיל את setPolylineStyleOptions עם null לפרמטר PolylineOptions. אפשר לאחזר את השדה PolylineOptions הפעיל באמצעות השיטה getPolylineStyleOptions.

סוגי קווים פוליגוניים

אלה סוגי הקווים הזמינים להתאמה אישית:

  • ACTIVE_ROUTE
  • REMAINING_ROUTE

הערכים ACTIVE_ROUTE ו-REMAINING_ROUTE מוצגים במהלך מעקב אחר הנסיעה ומייצגים את מסלול הרכב.

תכונות פוליגוניות

המאפיינים הניתנים להתאמה אישית שזמינים לכל קו פוליגוני מסופקים על ידי מפות Google PolylineOptions. PolylineOptions נוצר באמצעות ה-constructor שלו, והמאפיינים המותאמים אישית מצוינים באמצעות שיטות הסגנון 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-index PolylineOptions.getZIndex() בתוספת קיזוז בהתאם למצב התנועה.

מצב התנועה מיוצג כאחת מארבעה סוגי מהירות. אפשר להתאים אישית את הצבע של כל סוג מהירות.

כדי להפעיל את 'קווים פוליגוניים המודעים לתנועה', יש ליצור אובייקט TrafficStyle שלאחר מכן יועבר אל ConsumerMapStyle בקריאה ל-setPolylineTrafficStyle().

דוגמה

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)

כוונון זום המצלמה כדי להתמקד במסע

לחצן 'המיקום שלי' שמובנה ב-SDK של מפות Google כברירת מחדל ממרכז את המצלמה למיקום המכשיר. אם יש פעילות פעילה של התחלת נסיעה והזמנה, כדאי למרכז את המצלמה כדי להתמקד לאורך התהליך ולא במיקום המכשיר.

פתרון מובנה ל-Android SDK לצרכנים: Autocamera

כדי לאפשר לכם להתמקד במסע במקום במיקום המכשיר, SDK לצרכן כולל תכונת Autocamera שמופעלת כברירת מחדל. המצלמה עושה זום כדי להתמקד במסלול 'התקדמות הנסיעה' ו'הזמנה' ובנקודת הדרך הבאה בנסיעה.

התאמה אישית של התנהגות המצלמה

אם אתם צריכים שליטה רבה יותר בהתנהגות המצלמה, תוכלו להשבית או להפעיל את Auto Camera באמצעות ConsumerController.setAutoCameraEnabled().

ConsumerController.getCameraUpdate() מחזירה את גבולות המצלמה המומלצים באותו רגע. עכשיו תוכלו לספק את CameraUpdate כארגומנט ל-GoogleMap.moveCamera() או ל-GoogleMap.animateCamera().