เลือกแพลตฟอร์ม: Android iOS

กำหนดค่าการหยุดชะงักแบบเรียลไทม์

การหยุดชะงักแบบเรียลไทม์คือชุดฟีเจอร์ที่แจ้งเตือนผู้ใช้เกี่ยวกับการหยุดชะงัก ตามเส้นทาง และช่วยให้ผู้ใช้รายงานและยืนยันการหยุดชะงักที่พบได้ ตัวอย่างของการหยุดชะงัก ได้แก่ อุบัติเหตุจากยานพาหนะ การจราจรติดขัด การปรากฏตัวของตำรวจและกล้องจับความเร็ว การก่อสร้าง การปิดเลน และสภาพอากาศบางอย่าง หน้านี้อธิบายฟีเจอร์การหยุดชะงักแบบเรียลไทม์และตัวเลือกการกำหนดค่า รวมถึงข้อควรพิจารณาสำหรับแอปที่ใช้ UI การนำทางที่กำหนดเอง

ฟีเจอร์การหยุดชะงักแบบเรียลไทม์

Navigation SDK มีฟีเจอร์การหยุดชะงักแบบเรียลไทม์ต่อไปนี้ซึ่งเป็นส่วนหนึ่งของประสบการณ์การนำทางหลัก

ฟีเจอร์เหล่านี้กำหนดค่าได้และเปิดใช้อยู่โดยค่าเริ่มต้น ส่วนต่อไปนี้จะให้ข้อมูลเพิ่มเติมเกี่ยวกับฟีเจอร์และตัวเลือกการกำหนดค่าที่มี

ข้อความไฮไลต์การหยุดชะงักแบบอินเทอร์แอกทีฟตามเส้นทาง

เมื่อแอปแสดงเส้นทาง ไม่ว่าจะเป็นในภาพรวมเส้นทางหรือระหว่างการนำทางที่ใช้งานอยู่ การหยุดชะงักในปัจจุบันจะปรากฏเป็นข้อความอธิบายตามเส้นทาง ข้อความไฮไลต์จะมีไอคอนที่ระบุประเภทการหยุดชะงัก

ข้อความไฮไลต์ตามเส้นทาง

คุณสามารถควบคุมการแสดงข้อความไฮไลต์การหยุดชะงักตามเส้นทางได้โดยใช้ setTrafficPromptsEnabled ซึ่งจะควบคุมการแสดงการแจ้งเตือนอัตโนมัติเมื่อผู้ใช้เข้าใกล้การหยุดชะงักด้วย

// Using the SupportNavigationFragment
mNavFragment.setTrafficPromptsEnabled(true);

// Using the NavigationView
navigationView.setTrafficPromptsEnabled(true);

แสดงรายละเอียดการหยุดชะงักเมื่อผู้ใช้แตะข้อความไฮไลต์

ผู้ใช้สามารถแตะข้อความไฮไลต์เพื่อแสดงการ์ดข้อมูลที่มีข้อมูลเพิ่มเติมเกี่ยวกับการหยุดชะงัก ซึ่งรวมถึงประเภทการหยุดชะงัก เวลาที่มีการรายงานล่าสุด และในบางกรณีจะมีตัวเลือกสำหรับ การโหวตว่าการหยุดชะงักยังคงเกิดขึ้นอยู่หรือไม่ การ์ดข้อมูลมี 2 ประเภท ซึ่งอาจปรากฏขึ้น ทั้งนี้ขึ้นอยู่กับว่าผู้ใช้กำลังนำทางอยู่หรือไม่ และตัวเลือกการกำหนดค่า จะแตกต่างกันไปในแต่ละประเภท

การ์ดข้อมูลข้อความไฮไลต์ในภาพรวมเส้นทางก่อนเริ่มการนำทางที่ใช้งานอยู่

เมื่อผู้ใช้แตะข้อความไฮไลต์ในภาพรวมเส้นทางก่อนเริ่มการนำทางที่ใช้งานอยู่ การ์ดข้อมูล จะปรากฏขึ้นพร้อมข้อมูลเพิ่มเติมเกี่ยวกับการหยุดชะงัก

การ์ดข้อมูลภาพรวม

คุณสามารถควบคุมความสามารถของผู้ใช้ในการแตะข้อความไฮไลต์การหยุดชะงักในภาพรวมเส้นทางเพื่อแสดงข้อมูลเพิ่มเติมได้โดยใช้ setTrafficIncidentCardsEnabled

// Using the SupportNavigationFragment
mNavFragment.setTrafficIncidentCardsEnabled(true);

// Using the NavigationView
navigationView.setTrafficIncidentCardsEnabled(true);

การ์ดข้อมูลข้อความไฮไลต์ระหว่างการนำทางที่ใช้งานอยู่

เมื่อข้อความไฮไลต์การหยุดชะงักปรากฏขึ้นตามเส้นทางในระหว่างการนำทางที่ใช้งานอยู่ ผู้ใช้สามารถแตะข้อความไฮไลต์เพื่อแสดงการ์ดข้อมูลที่มีข้อมูลเพิ่มเติมเกี่ยวกับการหยุดชะงัก รวมถึงประเภทการหยุดชะงักและเวลาที่มีการรายงานล่าสุด ตลอดจนปุ่มสำหรับโหวตว่าการหยุดชะงักยังคงเกิดขึ้นอยู่หรือไม่ Google จะประมวลผลคะแนนที่ผู้ใช้ส่งและอาจแสดงคะแนนดังกล่าวในแผนที่ต่อ ผู้ใช้ Google Maps และผู้ใช้ Navigation SDK รายอื่นๆ รวมถึงใช้เพื่อพิจารณาว่าจะแสดง การหยุดชะงักต่อไปหรือไม่

การ์ดข้อมูลการนำทางที่ใช้งานอยู่

คุณสามารถควบคุมการแสดงและการแตะข้อความไฮไลต์การหยุดชะงักระหว่างการนำทางที่ใช้งานอยู่ได้โดยใช้ setTrafficPromptsEnabled ซึ่งจะควบคุม การแสดงข้อความไฮไลต์ตามเส้นทางและ การแสดงการแจ้งเตือนอัตโนมัติเมื่อผู้ใช้เข้าใกล้การหยุดชะงักด้วย

// Using the SupportNavigationFragment
mNavFragment.setTrafficPromptsEnabled(true);

// Using the NavigationView
navigationView.setTrafficPromptsEnabled(true);

การแจ้งเตือนการหยุดชะงักอัตโนมัติพร้อมการโหวตระหว่างการนำทางที่ใช้งานอยู่

ในระหว่างการนำทางที่ใช้งานอยู่ เมื่อผู้ใช้เข้าใกล้การหยุดชะงักตามเส้นทาง ระบบจะแสดงข้อความพร้อม ข้อมูลเกี่ยวกับการหยุดชะงักและปุ่มสำหรับโหวตว่ายังมีการหยุดชะงักอยู่หรือไม่ Google จะประมวลผลคะแนนที่ผู้ใช้ส่งและอาจแสดงคะแนนดังกล่าวในแผนที่สำหรับ ผู้ใช้ Google Maps และ Navigation SDK รายอื่นๆ รวมถึงใช้เพื่อพิจารณาว่าจะแสดงการหยุดชะงักต่อไปหรือไม่

การ์ดข้อมูลการนำทางที่ใช้งานอยู่

คุณสามารถกำหนดค่าการแสดงข้อความแจ้งการแจ้งเตือนระหว่างการนำทางที่ใช้งานอยู่ได้โดยใช้ setTrafficPromptsEnabled ซึ่งจะควบคุมการแสดง ข้อความไฮไลต์ตามเส้นทางด้วย

// Using the SupportNavigationFragment
mNavFragment.setTrafficPromptsEnabled(true);

// Using the NavigationView
navigationView.setTrafficPromptsEnabled(true);

การรายงานการหยุดชะงักระหว่างการนำทางที่ใช้งานอยู่

ในโหมดการนำทางที่ใช้งานอยู่ ปุ่มจะปรากฏใน UI การนำทาง ซึ่งช่วยให้ผู้ใช้รายงานการหยุดชะงักใหม่ๆ ตามเส้นทางได้ เมื่อผู้ใช้แตะปุ่ม เมนูที่มีประเภทการหยุดชะงักที่รายงานได้จะปรากฏขึ้น Google จะประมวลผลรายงานที่ผู้ใช้ส่งและอาจแสดงรายงานดังกล่าวในแผนที่สำหรับผู้ใช้ Google Maps และ Navigation SDK คนอื่นๆ

ปุ่มรายงาน เมนูการรายงาน

แสดงหรือซ่อนปุ่มการรายงานมาตรฐาน

คุณกำหนดค่าระดับการมองเห็นของปุ่มการรายงานมาตรฐานในระหว่างการนำทางที่ใช้งานอยู่ได้โดยใช้ setReportIncidentButtonEnabled

// Enables the incident reporting button to show in situations where incident
// reporting is possible.

// Using the SupportNavigationFragment
mNavFragment.setReportIncidentButtonEnabled(true);

// Using the NavigationView
navigationView.setReportIncidentButtonEnabled(true);

เพิ่มปุ่มรายงานที่กำหนดเอง

คุณสามารถเพิ่มปุ่มรายงานการหยุดทำงานที่กำหนดเองลงใน UI การนำทางแทนปุ่มรายงานการหยุดทำงานมาตรฐานได้ เมื่อผู้ใช้คลิกปุ่มที่กำหนดเอง คุณจะทริกเกอร์การแสดงเมนูการรายงานได้โดยเรียกใช้เมธอด showReportIncidentsPanel ก่อนเพิ่มปุ่มการรายงานที่กำหนดเอง ให้ตรวจสอบว่าแอปอยู่ในการนำทางที่ใช้งานอยู่และผู้ใช้อยู่ในประเทศที่เปิดใช้การรายงาน โดยการเรียกใช้ isIncidentReportingAvailable หากเงื่อนไขใดเงื่อนไขหนึ่งไม่เป็นจริง เมนูการรายงานจะไม่ปรากฏ

  Button customReportIncidentButton = findViewById(R.id.custom_reporting_button);
  
  // Check if reporting is available before displaying your button
  customReportIncidentButton.setVisibility(
      navigationView.isReportingAvailable ? View.VISIBLE : View.GONE);
  
  // Trigger the reporting flow if the button is clicked
  customReportIncidentButton.setOnClickListener(v ->
      navigationView.showReportIncidentsPanel());
  

ทำงานกับ UI การนำทางที่กำหนดเอง

หากการติดตั้งใช้งาน Navigation SDK มีองค์ประกอบ UI ที่กำหนดเอง คุณต้องพิจารณาองค์ประกอบการหยุดชะงักแบบเรียลไทม์เพื่อหลีกเลี่ยงความขัดแย้ง

การวางตำแหน่งปุ่มรายงาน

โดยค่าเริ่มต้น ปุ่มรายงานการหยุดชะงักจะอยู่ที่มุมด้านล่าง/ท้ายของแผนที่ โดยจะอยู่ทางด้านขวาสำหรับภาษาที่อ่านจากซ้ายไปขวา และอยู่ทางด้านซ้ายสำหรับภาษาที่อ่านจากขวาไปซ้าย หากต้องการย้ายปุ่มรายงานเพื่อเพิ่มพื้นที่สำหรับองค์ประกอบ UI ที่กำหนดเอง ให้เพิ่มBOTTOM_END_BELOWหรือFOOTERตัวควบคุมที่กำหนดเอง ซึ่งจะเลื่อนตำแหน่งของปุ่มขึ้นบนหน้าจอ การวาง UI ที่กำหนดเองของคุณเองภายในตัวควบคุมที่กำหนดเอง ยังช่วยให้มั่นใจได้ว่าข้อความแจ้งที่แสดงโดย Navigation SDK จะซ้อนทับองค์ประกอบ UI ที่กำหนดเองอย่างเหมาะสมขณะแสดง หากใช้ตัวควบคุมที่กำหนดเองไม่ได้ ให้ใช้ Prompt Visibility API เพื่อจัดการความขัดแย้งที่อาจเกิดขึ้นใน UI

Prompt Visibility API (ทดลอง)

Prompt Visibility API ช่วยให้คุณหลีกเลี่ยงความขัดแย้งระหว่างองค์ประกอบ UI ที่สร้างโดย Navigation SDK กับองค์ประกอบ UI ที่กำหนดเองของคุณเองได้โดยการเพิ่ม Listener เพื่อรับ Callback ก่อนที่องค์ประกอบ UI ของ Navigation SDK จะปรากฏขึ้น และทันทีที่นำองค์ประกอบออก คุณจะได้รับ การเรียกกลับสำหรับองค์ประกอบการหยุดชะงักแบบเรียลไทม์ ซึ่งรวมถึงการ์ดข้อมูล พรอมต์ และเมนูการรายงานการหยุดชะงัก รวมถึงการแจ้งเตือนอื่นๆ ที่สร้างโดย Navigation SDK
// Sample listener
val listener: PromptVisibilityChangedListener = { isVisible ->
	if (isVisible) {
		customFab.visibility = false
		customFooter.visibility = false
		moveSomeOtherThingsAround()
	} else {
		customFab.visibility = true
		customFooter.visibility = true
		moveSomeThingsBackToWhereTheyWereBefore()
	}
}

// Inside onCreate()
navigationView.addPromptVisibilityChangedListener(listener)

// Inside onDestroy()
navigationView.removePromptVisibilityChangedListener(listener)