เลือกแพลตฟอร์ม 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 การนำทางที่กำหนดเอง

หากการติดตั้งใช้งาน 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 เพื่อรับการเรียกกลับก่อนที่องค์ประกอบ 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)