โปรแกรมแสดงภาพแผนที่ใหม่

Maps SDK สำหรับ Android เวอร์ชัน 18.2.0 มีตัวแสดงผลแผนที่ที่อัปเกรดให้ใช้งาน โหมดแสดงภาพนี้มีการปรับปรุงหลายอย่าง รวมถึงการรองรับการจัดรูปแบบแผนที่ในระบบคลาวด์

โหมดแสดงภาพใหม่มีประโยชน์ดังต่อไปนี้

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

กำหนดการเปิดตัว

ในเดือนตุลาคม 2021 Google ได้เริ่มเปิดตัวโหมดแสดงภาพแผนที่ที่อัปเกรด เมื่อถึงเวลานั้น คุณสามารถเลือกที่จะเริ่มใช้โหมดแสดงผลที่อัปเกรดในแอป

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

จะเกิดอะไรขึ้นเมื่อตัวแสดงผลเริ่มต้นมีการเปลี่ยนแปลง

โหมดแสดงภาพเริ่มต้นจะกลายเป็นโหมดแสดงภาพที่อัปเกรดในการเปิดตัว Maps SDK เวอร์ชัน 18.2.0 สำหรับ Android หากต้องการใช้ประโยชน์จากตัวแสดงผลที่อัปเกรด คุณต้องสร้างแอปใหม่ๆ หรือสร้างแอปที่มีอยู่ใหม่โดยใช้ SDK เวอร์ชันใหม่

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

อุปกรณ์ที่รองรับ

ในการใช้ตัวแสดงผลแผนที่ที่อัปเกรดแล้ว อุปกรณ์ต้องมีคุณสมบัติตรงตามเกณฑ์ต่อไปนี้

  • Android 5.0 (API ระดับ 21) ขึ้นไป
  • การใช้บริการ Google Play เวอร์ชัน 21.39.14 ขึ้นไป

อุปกรณ์ที่ใช้ Android 4.4W (API ระดับ 20) และรุ่นก่อนหน้า หรือใช้บริการ Google Play เวอร์ชัน 21.39.13 หรือเก่ากว่า จะใช้ตัวแสดงผลแบบเดิมต่อไปแม้ว่าตัวแสดงผลเริ่มต้นจะเปลี่ยนไปเป็นโหมดแสดงผลแผนที่ที่อัปเกรดแล้วก็ตาม

เลือกไม่ใช้โหมดแสดงผลที่อัปเกรด

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

โดยวิธีเลือกไม่ใช้มีดังนี้

  • อัปเดตโค้ดเพื่อนำเข้า MapsInitializer และ MapsInitializer.Renderer อย่างชัดแจ้ง

  • อัปเดตโค้ดเพื่อเรียก MapsInitializer.initialize() ส่งผ่าน Renderer.LEGACY เพื่อเลือกไม่ใช้และใช้ตัวแสดงผลแบบเดิม

  • ใช้ OnMapsSdkInitializedCallback เพื่อพิจารณาว่าระบบแสดงผลเวอร์ชันใด

โค้ดของคุณต้องเรียกใช้ MapsInitializer.initialize() ก่อนที่จะมีการสร้าง MapView, MapFragment หรือ SupportMapFragment ใดๆ ขึ้นมา เราขอแนะนำให้เรียกใช้โค้ดนี้ใน onCreate สำหรับ แอปพลิเคชัน หรือกิจกรรมของแอป ก่อนที่จะมีการตั้งค่าการดูเนื้อหา

ตัวอย่างต่อไปนี้แสดงวิธีเรียกใช้ MapsInitializer.initialize() เพื่อเลือกไม่ใช้ตัวแสดงผลแผนที่เดิม

Kotlin

import com.google.android.gms.maps.MapsInitializer
import com.google.android.gms.maps.MapsInitializer.Renderer
import com.google.android.gms.maps.OnMapsSdkInitializedCallback

internal class MapRendererOptInApplication : Application(), OnMapsSdkInitializedCallback {
  override fun onCreate() {
    super.onCreate()
    MapsInitializer.initialize(applicationContext, Renderer.LEGACY, this)
  }

  override fun onMapsSdkInitialized(renderer: MapsInitializer.Renderer) {
    when (renderer) {
      Renderer.LATEST -> Log.d("MapsDemo", "The latest version of the renderer is used.")
      Renderer.LEGACY -> Log.d("MapsDemo", "The legacy version of the renderer is used.")
    }
  }
}

Java

import com.google.android.gms.maps.MapsInitializer;
import com.google.android.gms.maps.MapsInitializer.Renderer;
import com.google.android.gms.maps.OnMapsSdkInitializedCallback;

class MapRendererOptInApplication extends Application implements OnMapsSdkInitializedCallback {

  @Override
  public void onCreate() {
    super.onCreate();
    MapsInitializer.initialize(getApplicationContext(), Renderer.LEGACY, this);
  }

  @Override
  public void onMapsSdkInitialized(MapsInitializer.Renderer renderer) {
    switch (renderer) {
      case LATEST:
        Log.d("MapsDemo", "The latest version of the renderer is used.");
        break;
      case LEGACY:
        Log.d("MapsDemo", "The legacy version of the renderer is used.");
        break;
    }
  }
}