กำหนดค่าโหมดปกติและโหมดแสงน้อย

Navigation SDK สำหรับ iOS ไม่ได้ใช้โหมดสว่างและโหมดมืดของระบบ iOS โดยอัตโนมัติ แต่ GMSMapView ที่เปิดใช้การนำทางจะรองรับรูปแบบสีปกติและสีในสภาพแสงน้อยผ่านพร็อพเพอร์ตี้ lightingMode และ enum GMSNavigationLightingMode แทน ดังนี้

  • โหมดปกติ (.normal): ใช้รูปแบบสีที่เหมาะสำหรับการดูในเวลากลางวัน
  • โหมดแสงน้อย (.lowLight): ใช้รูปแบบสีที่เหมาะสำหรับการดูในเวลากลางคืน

เปิดใช้การเปลี่ยนโหมดแสงอัตโนมัติ

Navigation SDK สำหรับ iOS จะคำนวณโหมดแสงที่แนะนำโดยอิงตามช่วงเวลาของวันและตำแหน่งของอุปกรณ์ และแสดงโหมดดังกล่าวผ่านพร็อพเพอร์ตี้ suggestedLightingMode ของ GMSNavigator อย่างไรก็ตาม GMSMapView จะไม่ใช้คำแนะนำนี้โดยอัตโนมัติ

หากต้องการสลับระหว่างโหมดปกติและโหมดแสงน้อยโดยอัตโนมัติ ให้ทำตามขั้นตอนต่อไปนี้ในตัวควบคุมมุมมอง

  1. ตั้งค่าโหมดแสงเริ่มต้นเมื่อเริ่มทำงาน: เมื่อตั้งค่าแผนที่ ให้อ่านพร็อพเพอร์ตี้ suggestedLightingMode จาก GMSNavigator แล้วกำหนดค่านั้นให้กับ mapView.lightingMode เนื่องจาก Listener จะเริ่มทำงานเมื่อโหมดแสงที่แนะนำมีการเปลี่ยนแปลงเท่านั้น (เช่น ตอนพระอาทิตย์ขึ้นหรือพระอาทิตย์ตก) การตั้งค่าเริ่มต้นจะช่วยให้มั่นใจได้ว่าแผนที่จะแสดงผลในโหมดแสงน้อยทันทีหากผู้ใช้เริ่มการนำทางในเวลากลางคืน
  2. ฟังการเปลี่ยนแปลงโหมดแสงระหว่างการนำทาง: ใช้โปรโตคอล GMSNavigatorListener และใช้เมธอด navigator(_:didChangeSuggestedLightingMode:) เพื่ออัปเดต mapView.lightingMode เมื่อใดก็ตามที่โหมดที่แนะนำมีการเปลี่ยนแปลง

ตัวอย่างต่อไปนี้แสดงวิธีตั้งค่าโหมดแสงเริ่มต้นและอัปเดตเมื่อโหมดแสงที่แนะนำมีการเปลี่ยนแปลง

Swift

// Step 1: Set the initial lighting mode on launch or setup.
mapView.navigator?.add(self)
mapView.lightingMode = mapView.navigator?.suggestedLightingMode ?? .normal

// Step 2: Update the lighting mode when the sun sets or rises during navigation.
func navigator(
  _ navigator: GMSNavigator,
  didChangeSuggestedLightingMode lightingMode: GMSNavigationLightingMode
) {
  mapView.lightingMode = lightingMode
}

Objective-C

// Step 1: Set the initial lighting mode on launch or setup.
[_mapView.navigator addListener:self];
_mapView.lightingMode = _mapView.navigator.suggestedLightingMode;

// Step 2: Update the lighting mode when the sun sets or rises during navigation.
- (void)navigator:(GMSNavigator *)navigator
    didChangeSuggestedLightingMode:(GMSNavigationLightingMode)lightingMode {
  _mapView.lightingMode = lightingMode;
}

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

บังคับใช้โหมดปกติหรือโหมดแสงน้อย

หากไม่ต้องการให้แผนที่เปลี่ยนโหมดโดยอัตโนมัติ คุณสามารถบังคับใช้โหมดปกติหรือโหมดแสงน้อยได้โดยตั้งค่า mapView.lightingMode โดยตรงและละเว้นการอัปเดต Listener navigator(_:didChangeSuggestedLightingMode:)

ตัวอย่างต่อไปนี้แสดงวิธีบังคับให้แผนที่อยู่ในโหมดแสงน้อยหรือโหมดปกติ

Swift

// Force low-light mode.
mapView.lightingMode = .lowLight

// Or force normal (daylight) mode.
mapView.lightingMode = .normal

Objective-C

// Force low-light mode.
_mapView.lightingMode = GMSNavigationLightingModeLowLight;

// Or force normal (daylight) mode.
_mapView.lightingMode = GMSNavigationLightingModeNormal;

ปรับแต่งสี UI ในสภาพแสงน้อย

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