Maps API บน Wear OS

แผนที่บนอุปกรณ์ที่สวมใส่ได้

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

หน้านี้อธิบายฟังก์ชันการทำงานของ API ที่พร้อมใช้งานในอุปกรณ์สวมใส่ และช่วยให้คุณเริ่มต้นสร้างแอปได้

เริ่มต้นใช้งาน Wear OS

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

Android Studio เป็นเครื่องมือที่แนะนำสำหรับการพัฒนา Wear OS เนื่องจากมีฟีเจอร์ที่ช่วยในการตั้งค่าโปรเจ็กต์ การรวมไลบรารี และการแพ็กเกจ

หากต้องการความช่วยเหลือทั่วไปเกี่ยวกับการออกแบบแอปสำหรับอุปกรณ์สวมใส่ โปรดดู หลักเกณฑ์การออกแบบ Wear OS หากต้องการความช่วยเหลือในการสร้างแอปแรกสำหรับอุปกรณ์สวมใส่ โปรดดูคู่มือการสร้างแอปสำหรับอุปกรณ์สวมใส่

สร้างแอปแผนที่แรกบน Wear OS

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

การเพิ่มทรัพยากร Dependency สำหรับโมดูลสำหรับอุปกรณ์สวมใส่

ตรวจสอบว่าได้รวมทรัพยากร Dependency ต่อไปนี้ไว้ในไฟล์ build.gradle.kts ของโมดูล Wear OS ของแอป

dependencies {
    // ...
    // Modern Android projects use version catalogs to manage dependencies.  To include the necessary dependencies,
    // first add the following to your libs.versions.toml file:
    //
    // [versions]
    // playServicesMaps = "20.0.0"
    // wear = "1.3.0"
    // wearable = "2.9.0"
    //
    // [libraries]
    // play-services-maps = { group = "com.google.android.gms", name = "play-services-maps", version.ref = "playServicesMaps" }
    // wear = { group = "androidx.wear", name = "wear", version.ref = "wear" }
    // wearable-compile = { group = "com.google.android.wearable", name = "wearable", version.ref = "wearable" }
    // wearable-support = { group = "com.google.android.support", name = "wearable", version.ref = "wearable" }

    compileOnly(libs.wearable.compile)
    implementation(libs.wearable.support)
    implementation(libs.play.services.maps)

    // This dependency is necessary for ambient mode
    implementation(libs.wear)

    // Android Test Dependencies
    androidTestImplementation(libs.ext.junit)
    androidTestImplementation(libs.espresso.core)
    androidTestImplementation(libs.uiautomator)
    androidTestImplementation(libs.truth)
    androidTestImplementation(libs.junit)
    
    // If your project does not use a version catalog, you can use the following dependencies instead:
    //
    //    compileOnly("com.google.android.wearable:wearable:2.9.0")
    //    implementation("com.google.android.support:wearable:2.9.0")
    //    implementation("com.google.android.gms:play-services-maps:20.0.0")
    //    implementation("androidx.wear:wear:1.3.0")
    //    androidTestImplementation("androidx.test.ext:junit:1.1.5")
    //    androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
    //    androidTestImplementation("androidx.test.uiautomator:uiautomator:2.3.0")
    //    androidTestImplementation("com.google.truth:truth:1.4.2")
    //    androidTestImplementation("junit:junit:4.13.2")
}

ดูข้อมูลเพิ่มเติมเกี่ยวกับทรัพยากร Dependency ได้ในคู่มือการเพิ่มโมดูล Wear OS ในโปรเจ็กต์ที่มีอยู่

การใช้ท่าทางสัมผัสปัดเพื่อปิดและตั้งค่าสีพื้นหลังเริ่มต้น

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

หากต้องการตั้งค่าสีพื้นหลังเริ่มต้นที่กำหนดเอง ให้ใช้แอตทริบิวต์ XML map:backgroundColor เพื่อกำหนดสีที่จะแสดงจนกว่าชิ้นส่วนแผนที่จริงจะโหลด

เพิ่มองค์ประกอบ SwipeDismissFrameLayout และ backgroundColor ลงในการกำหนดเลย์เอาต์เป็นคอนเทนเนอร์ของ SupportMapFragment ดังนี้

  <androidx.wear.widget.SwipeDismissFrameLayout
      android:id="@+id/map_container"
      android:layout_width="match_parent"
      android:layout_height="match_parent">
    <fragment
        android:id="@+id/map"
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        map:backgroundColor="#fff0b2dd" />
  </androidx.wear.widget.SwipeDismissFrameLayout>

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

Kotlin

class MainActivity : AppCompatActivity(), OnMapReadyCallback,
                     AmbientModeSupport.AmbientCallbackProvider {


    public override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        // Set the layout. It only contains a SupportMapFragment and a DismissOverlay.
        setContentView(R.layout.activity_main)

        // Enable ambient support, so the map remains visible in simplified, low-color display
        // when the user is no longer actively using the app but the app is still visible on the
        // watch face.
        val controller = AmbientModeSupport.attach(this)
        Log.d(MainActivity::class.java.simpleName, "Is ambient enabled: " + controller.isAmbient)

        // Retrieve the containers for the root of the layout and the map. Margins will need to be
        // set on them to account for the system window insets.
        val mapFrameLayout = findViewById<SwipeDismissFrameLayout>(R.id.map_container)
        mapFrameLayout.addCallback(object : SwipeDismissFrameLayout.Callback() {
            override fun onDismissed(layout: SwipeDismissFrameLayout) {
                onBackPressed()
            }
        })

        // Obtain the MapFragment and set the async listener to be notified when the map is ready.
        mapFragment = supportFragmentManager
            .findFragmentById(R.id.map) as SupportMapFragment
        mapFragment.getMapAsync(this)
    }

    // ...
}

      

Java

public class MainActivity extends AppCompatActivity implements OnMapReadyCallback,
    AmbientModeSupport.AmbientCallbackProvider {


    public void onCreate(Bundle savedState) {
        super.onCreate(savedState);

        // Set the layout. It only contains a SupportMapFragment and a DismissOverlay.
        setContentView(R.layout.activity_main);

        // Enable ambient support, so the map remains visible in simplified, low-color display
        // when the user is no longer actively using the app but the app is still visible on the
        // watch face.
        AmbientModeSupport.AmbientController controller = AmbientModeSupport.attach(this);
        Log.d(MainActivity.class.getSimpleName(), "Is ambient enabled: " + controller.isAmbient());

        // Retrieve the containers for the root of the layout and the map. Margins will need to be
        // set on them to account for the system window insets.
        final SwipeDismissFrameLayout mapFrameLayout = (SwipeDismissFrameLayout) findViewById(
            R.id.map_container);
        mapFrameLayout.addCallback(new SwipeDismissFrameLayout.Callback() {
            @Override
            public void onDismissed(SwipeDismissFrameLayout layout) {
                onBackPressed();
            }
        });

        // Obtain the MapFragment and set the async listener to be notified when the map is ready.
        mapFragment = (SupportMapFragment) getSupportFragmentManager()
            .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }

    // ...
}

      

การเพิ่มแผนที่

ใช้เมธอด Callback onMapReady(GoogleMap) ตามปกติ เพื่อรับแฮนเดิลไปยังออบเจ็กต์ GoogleMap ระบบจะทริกเกอร์ฟังก์ชันเรียกกลับเมื่อแผนที่พร้อมใช้งาน ในเมธอด Callback คุณสามารถเพิ่มตัวทำเครื่องหมายหรือเส้นประกอบลงในแผนที่ เพิ่ม Listener หรือย้ายกล้องได้ ตัวอย่างด้านล่างจะเพิ่มเครื่องหมายใกล้กับโรงอุปรากรซิดนีย์

Kotlin

private val sydney = LatLng(-33.85704, 151.21522)

override fun onMapReady(googleMap: GoogleMap) {
    // Add a marker with a title that is shown in its info window.
    googleMap.addMarker(
        MarkerOptions().position(sydney)
            .title("Sydney Opera House")
    )

    // Move the camera to show the marker.
    googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(sydney, 10f))
}

      

Java

private static final LatLng SYDNEY = new LatLng(-33.85704, 151.21522);

@Override
public void onMapReady(@NonNull GoogleMap googleMap) {
    // Add a marker with a title that is shown in its info window.
    googleMap.addMarker(new MarkerOptions().position(SYDNEY)
        .title("Sydney Opera House"));

    // Move the camera to show the marker.
    googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(SYDNEY, 10));
}

      

การเปิดใช้โหมดแอมเบียนท์

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

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

ทำตามขั้นตอนต่อไปนี้เพื่อให้แน่ใจว่าแอปใช้โหมดแอมเบียนท์ของแผนที่

  1. อัปเดต Android SDK ให้มีแพลตฟอร์ม Android 6.0 (API 23) ขึ้นไป ซึ่งมี API ที่อนุญาตให้กิจกรรมเข้าสู่โหมดแอมเบียนท์ ดูข้อมูลเกี่ยวกับวิธีอัปเดต SDK ได้ในเอกสารประกอบของ Android เกี่ยวกับการเพิ่มแพ็กเกจ SDK
  2. ตรวจสอบว่าโปรเจ็กต์กำหนดเป้าหมายเป็น Android 6.0 ขึ้นไป โดยตั้งค่า targetSdkVersion เป็น 23 ขึ้นไปใน ไฟล์ Manifest ของแอป
  3. เพิ่มทรัพยากร Dependency สำหรับอุปกรณ์สวมใส่ลงในไฟล์ build.gradle.kts ของแอป ดูตัวอย่างในหน้านี้
  4. เพิ่มรายการไลบรารีที่ใช้ร่วมกันสำหรับอุปกรณ์สวมใส่ลงในไฟล์ Manifest ของแอปสำหรับอุปกรณ์สวมใส่ตามที่ อธิบายไว้ในคลาสการฝึกอบรม Android เกี่ยวกับ การทำให้แอปมองเห็นได้
  5. เพิ่มสิทธิ์ WAKE_LOCK ลงในไฟล์ Manifest ของแอปสำหรับอุปกรณ์พกพาและแอปสำหรับอุปกรณ์สวมใส่ ตามที่อธิบายไว้ในคลาสการฝึกอบรม Android เกี่ยวกับ การทำให้แอปมองเห็นได้
  6. ในเมธอด onCreate() ของกิจกรรม ให้เรียกเมธอด AmbientModeSupport.attach() ซึ่งจะบอกระบบปฏิบัติการว่าแอปพลิเคชันเปิดตลอดเวลา ดังนั้นเมื่ออุปกรณ์ปิดเครื่อง แอปพลิเคชันควรเข้าสู่โหมดแอมเบียนท์แทนที่จะกลับไปที่หน้าปัดนาฬิกา
  7. ใช้อินเทอร์เฟซ AmbientModeSupport.AmbientCallbackProvider ในกิจกรรมเพื่อให้กิจกรรมรับการเปลี่ยนแปลงสถานะโหมดแอมเบียนท์ได้
  8. ตั้งค่าแผนที่ให้รองรับโหมดแอมเบียนท์ คุณทำได้โดยตั้งค่า แอตทริบิวต์ map:ambientEnabled="true" ในไฟล์เลย์เอาต์ XML ของกิจกรรม หรือทำ แบบเป็นโปรแกรมโดยตั้งค่า GoogleMapOptions.ambientEnabled(true) การตั้งค่านี้จะแจ้งให้ API ทราบว่าต้องโหลดชิ้นส่วนแผนที่ที่จำเป็นล่วงหน้าเพื่อใช้ในโหมดแอมเบียนท์
  9. เมื่อกิจกรรมเปลี่ยนเป็นโหมดแอมเบียนท์ ระบบจะเรียกเมธอด onEnterAmbient() ใน AmbientCallback ที่คุณ ระบุ แทนที่ onEnterAmbient() และเรียก SupportMapFragment.onEnterAmbient(ambientDetails) หรือ MapView.onEnterAmbient(ambientDetails) API จะเปลี่ยนเป็นการแสดงผลแผนที่แบบไม่โต้ตอบและมีสีน้อยลง
  10. เช่นเดียวกัน ใน onExitAmbient() ให้เรียก SupportMapFragment.onExitAmbient() หรือ MapView.onExitAmbient() API จะเปลี่ยนเป็นการแสดงผลแผนที่แบบปกติ

ตัวอย่างโค้ดต่อไปนี้จะเปิดใช้โหมดแอมเบียนท์ในกิจกรรม

Kotlin

class AmbientActivity : AppCompatActivity(), AmbientModeSupport.AmbientCallbackProvider {

    private lateinit var mapFragment: SupportMapFragment

    public override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        // Set the layout. It only contains a SupportMapFragment and a DismissOverlay.
        setContentView(R.layout.activity_main)

        // Enable ambient support, so the map remains visible in simplified, low-color display
        // when the user is no longer actively using the app but the app is still visible on the
        // watch face.
        val controller = AmbientModeSupport.attach(this)
        Log.d(AmbientActivity::class.java.simpleName, "Is ambient enabled: " + controller.isAmbient)

        // Obtain the MapFragment and set the async listener to be notified when the map is ready.
        mapFragment = supportFragmentManager
            .findFragmentById(R.id.map) as SupportMapFragment
    }

    override fun getAmbientCallback(): AmbientModeSupport.AmbientCallback {
        return object : AmbientModeSupport.AmbientCallback() {
            /**
             * Starts ambient mode on the map.
             * The API swaps to a non-interactive and low-color rendering of the map when the user is no
             * longer actively using the app.
             */
            override fun onEnterAmbient(ambientDetails: Bundle) {
                super.onEnterAmbient(ambientDetails)
                mapFragment.onEnterAmbient(ambientDetails)
            }

            /**
             * Exits ambient mode on the map.
             * The API swaps to the normal rendering of the map when the user starts actively using the app.
             */
            override fun onExitAmbient() {
                super.onExitAmbient()
                mapFragment.onExitAmbient()
            }
        }
    }
}

      

Java

public class AmbientActivity extends AppCompatActivity implements
    AmbientModeSupport.AmbientCallbackProvider {

    private SupportMapFragment mapFragment;

    public void onCreate(Bundle savedState) {
        super.onCreate(savedState);

        // Set the layout. It only contains a SupportMapFragment and a DismissOverlay.
        setContentView(R.layout.activity_main);

        // Enable ambient support, so the map remains visible in simplified, low-color display
        // when the user is no longer actively using the app but the app is still visible on the
        // watch face.
        AmbientModeSupport.AmbientController controller = AmbientModeSupport.attach(this);
        Log.d(AmbientActivity.class.getSimpleName(), "Is ambient enabled: " + controller.isAmbient());

        // Obtain the MapFragment and set the async listener to be notified when the map is ready.
        mapFragment = (SupportMapFragment) getSupportFragmentManager()
            .findFragmentById(R.id.map);
    }

    @Override
    public AmbientCallback getAmbientCallback() {
        return new AmbientCallback() {
            /**
             * Starts ambient mode on the map.
             * The API swaps to a non-interactive and low-color rendering of the map when the user is no
             * longer actively using the app.
             */
            @Override
            public void onEnterAmbient(Bundle ambientDetails) {
                super.onEnterAmbient(ambientDetails);
                mapFragment.onEnterAmbient(ambientDetails);
            }

            /**
             * Exits ambient mode on the map.
             * The API swaps to the normal rendering of the map when the user starts actively using the app.
             */
            @Override
            public void onExitAmbient() {
                super.onExitAmbient();
                mapFragment.onExitAmbient();
            }
        };
    }
}

      

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

การใช้ Street View ใน Wear OS

Street View รองรับบนอุปกรณ์สวมใส่ได้อย่างเต็มรูปแบบ

หากต้องการอนุญาตให้ผู้ใช้ออกจากแอปเมื่อดูพาโนรามาใน Street View ให้ใช้ StreetViewPanorama.OnStreetViewPanoramaLongClickListener เพื่อฟังท่าทางสัมผัสแบบแตะค้าง เมื่อผู้ใช้แตะค้างที่ใดที่หนึ่งในรูปภาพ Street View คุณจะได้รับเหตุการณ์ onStreetViewPanoramaLongClick(StreetViewPanoramaOrientation) เรียก DismissOverlayView.show() เพื่อแสดงปุ่มออก

โค้ดตัวอย่าง

แอปตัวอย่างพร้อมให้บริการใน GitHub ซึ่งคุณสามารถใช้เป็น จุดเริ่มต้นสำหรับแอปของคุณได้ ตัวอย่างนี้จะแสดงวิธีตั้งค่า Google Maps พื้นฐานใน Wear OS

ฟังก์ชันการทำงานที่รองรับใน Maps API บน Wear OS

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

ฟังก์ชันการทำงาน
โหมดอินเทอร์แอกทีฟเต็มรูปแบบและโหมด Lite

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

ในโหมด Lite ระบบจะปิดใช้ Intent เพื่อเริ่มแอป Google Maps บนมือถือเมื่อผู้ใช้แตะแผนที่ และไม่สามารถเปิดใช้ในอุปกรณ์ที่สวมใส่ได้

ดูรายการความแตกต่างทั้งหมดระหว่างโหมด Lite กับโหมดอินเทอร์แอกทีฟเต็มรูปแบบได้ในเอกสารประกอบโหมด Lite

แถบเครื่องมือแผนที่ ระบบจะปิดใช้ แถบเครื่องมือแผนที่และไม่สามารถเปิดใช้ในอุปกรณ์ที่สวมใส่ได้
ตัวควบคุม UI ระบบจะปิดใช้ตัวควบคุม UI controls ในอุปกรณ์สวมใส่โดยค่าเริ่มต้น ซึ่งรวมถึง ตัวควบคุมการซูม เข็มทิศ และตำแหน่งของฉัน คุณสามารถเปิดใช้ตัวควบคุมเหล่านี้ได้โดยใช้ UiSettings คลาสตามปกติ
ท่าทางสัมผัส ท่าทางสัมผัสแบบแตะครั้งเดียว ทำงานตามที่คาดไว้ ตัวอย่างเช่น แตะและลากเพื่อเลื่อนแผนที่ แตะสองครั้ง เพื่อซูมเข้า และแตะ 2 นิ้วเพื่อซูมออก การรองรับท่าทางสัมผัสแบบมัลติทัชจะแตกต่างกันไปตามอุปกรณ์ของผู้ใช้ ตัวอย่างท่าทางสัมผัสแบบมัลติทัช ได้แก่ การดัน 2 นิ้วเพื่อเอียงแผนที่, การบีบเพื่อซูม และการหมุน 2 นิ้ว
แผนที่ในอาคารและอาคาร ระบบจะปิดใช้แผนที่ในอาคาร ในอุปกรณ์ที่สวมใส่ได้โดยค่าเริ่มต้น คุณสามารถเปิดใช้ได้โดยเรียก GoogleMap.setIndoorEnabled(true) หากเปิดใช้แผนที่ในอาคาร แผนที่จะแสดงระดับชั้นเริ่มต้น อุปกรณ์สวมใส่ไม่รองรับองค์ประกอบ UI ของตัวเลือกระดับ ตัวเลือก
การวางซ้อนของชิ้นส่วนแผนที่ อุปกรณ์สวมใส่ ไม่รองรับ การวางซ้อนของชิ้นส่วนแผนที่

แนวทางปฏิบัติแนะนำสำหรับการพัฒนาด้วย Maps API บน Wear OS

วิธีมอบประสบการณ์การใช้งานที่ดีที่สุดแก่ผู้ใช้ในแอป

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