Trải nghiệm thao tác tuỳ chỉnh
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Navigation SDK cung cấp nhiều cách để tích hợp trải nghiệm chỉ đường vào ứng dụng của bạn. Trang này giải thích về trải nghiệm chỉ đường tuỳ chỉnh và điểm khác biệt giữa trải nghiệm này với các trải nghiệm chỉ đường khác có trong Navigation SDK.
Trải nghiệm điều hướng tuỳ chỉnh là gì?
Cách chính để triển khai Navigation SDK là sử dụng trải nghiệm điều hướng của Google. Cách này cho phép bạn nhúng trải nghiệm chỉ đường từng chặng bằng cách sử dụng các phần tử và hình ảnh giao diện người dùng do Google cung cấp – tương tự như trải nghiệm điều hướng trong các ứng dụng Google Maps. Nếu cần có tính linh hoạt cao hơn so với trải nghiệm điều hướng của Google, bạn có thể triển khai một trải nghiệm điều hướng tuỳ chỉnh.
Trải nghiệm điều hướng tuỳ chỉnh đề cập đến mọi thứ, từ việc loại bỏ hoàn toàn hướng dẫn rẽ và chỉ chạy điều hướng dưới dạng một quy trình nền, đến việc chiếu một trải nghiệm hướng dẫn được tuỳ chỉnh cao lên một màn hình riêng biệt với thiết bị chạy điều hướng. Với trải nghiệm điều hướng tuỳ chỉnh, ứng dụng của bạn sẽ gọi Navigation SDK để yêu cầu một nguồn cấp dữ liệu chỉ đường từng chặng, sau đó bạn cung cấp và quản lý các phần tử giao diện người dùng và hình ảnh mà người dùng nhìn thấy trong trải nghiệm điều hướng. Mặc dù thường dễ triển khai hơn, nhưng việc sử dụng trải nghiệm điều hướng của Google cho phép bạn tuỳ chỉnh nhiều hơn.
Khi bạn tạo trải nghiệm chỉ đường tuỳ chỉnh, ứng dụng của bạn sẽ gọi Navigation SDK để bắt đầu, chạy và dừng chỉ đường bằng quy trình sau:
Bắt đầu dò đường. Giống như trải nghiệm điều hướng của Google, trải nghiệm điều hướng tuỳ chỉnh vẫn liên quan đến việc tạo một thực thể điều hướng và thiết lập đích đến. Tuy nhiên, với trải nghiệm điều hướng tuỳ chỉnh, bạn có thể đạt được điều này bằng cách thiết lập một phiên điều hướng bằng GMSNavigationService.createNavigationSession
(một đối tượng không phải giao diện người dùng có trạng thái) có thể hoạt động với hoặc không có trình điều khiển khung hiển thị.
Để biết thêm thông tin, hãy xem Thông tin chi tiết về nguồn cấp dữ liệu chỉ dẫn từng chặng.
Xem bản minh hoạ: Bản tải xuống Navigation SDK có chứa một bản minh hoạ mà bạn có thể chạy để xem ví dụ về trải nghiệm điều hướng chuyển đổi giữa chỉ dẫn từng chặng thông qua chế độ điều hướng tiêu chuẩn sang trải nghiệm điều hướng chỉ cho thấy vị trí thiết bị di chuyển dọc theo một đường nhiều đoạn.
Chế độ điều hướng đang hoạt động. Đây là một điểm khác biệt quan trọng khác giữa trải nghiệm điều hướng do Google cung cấp và trải nghiệm điều hướng tuỳ chỉnh.
Thay vì chuyển hướng dẫn cho trình quản lý sự kiện tích hợp của Navigation SDK, bạn thiết lập một trình nghe để nhận hướng dẫn chi tiết từng chặng bằng cách triển khai giao thức GMSNavigatorListener
, sau đó triển khai trình xử lý sự kiện. Điều này cho phép trải nghiệm của bạn phản hồi các sự kiện được mô tả trong phần Nghe các sự kiện điều hướng.
Kết thúc chỉ đường. Giống như trải nghiệm điều hướng của Google, chế độ điều hướng tuỳ chỉnh cũng yêu cầu bạn chấm dứt hoạt động điều hướng theo cách phù hợp nhất với trải nghiệm của ứng dụng.
Bạn nên sử dụng trải nghiệm điều hướng tuỳ chỉnh khi nào?
Bảng sau đây mô tả một số trường hợp điều hướng tuỳ chỉnh.
Ví dụ về cách sử dụng |
Các bước tổng quát |
Bạn cần cung cấp chỉ dẫn lái xe chỉ bằng văn bản cho các thiết bị nhỏ, chẳng hạn như xe 2 bánh. |
Tạo trình điều hướng và thiết lập hướng dẫn từng chặng dưới dạng nguồn cấp dữ liệu cho một thiết bị màn hình nhỏ trong khi trình điều hướng chạy trên điện thoại di động của người lái xe bên ngoài tầm nhìn trực tiếp của họ. |
Bạn muốn cung cấp ứng dụng của mình dưới dạng dịch vụ trên ô tô cho những người lái xe sử dụng Apple CarPlay. |
- Thiết lập dịch vụ ô tô.
- Thiết lập dự án Navigation SDK.
- Thiết lập một trình điều hướng nếu bạn chưa thiết lập.
- Thiết lập một trình nghe để nhận hướng dẫn từng chặng.
- Vẽ bản đồ trên giao diện ứng dụng dành cho ô tô và điền sẵn các trường từ nguồn cấp dữ liệu mà bạn đã định cấu hình.
Để biết thêm thông tin, hãy xem bài viết Bật chế độ chỉ đường cho CarPlay |
Người lái xe sử dụng ứng dụng của bạn muốn có bản đồ tổng quan cho hầu hết hành trình của họ, chỉ có hướng dẫn từng chặng tối thiểu cho đường phố trong thành phố. |
Ứng dụng của bạn phải cho phép người lái xe tham gia và thoát khỏi trải nghiệm điều hướng của Google khi cần, mà không cần thay đổi chế độ cài đặt của trình điều hướng cho chế độ đích đến và chuyến đi. |
Trừ phi có lưu ý khác, nội dung của trang này được cấp phép theo Giấy phép ghi nhận tác giả 4.0 của Creative Commons và các mẫu mã lập trình được cấp phép theo Giấy phép Apache 2.0. Để biết thông tin chi tiết, vui lòng tham khảo Chính sách trang web của Google Developers. Java là nhãn hiệu đã đăng ký của Oracle và/hoặc các đơn vị liên kết với Oracle.
Cập nhật lần gần đây nhất: 2025-08-31 UTC.
[null,null,["Cập nhật lần gần đây nhất: 2025-08-31 UTC."],[[["\u003cp\u003eThe Navigation SDK offers a custom navigation experience for greater flexibility beyond the standard Google navigation experience.\u003c/p\u003e\n"],["\u003cp\u003eCustom navigation involves managing UI elements and visuals, starting navigation sessions, listening for events, and ending navigation.\u003c/p\u003e\n"],["\u003cp\u003eCustom experiences are suitable for scenarios like text-only guidance, Carplay integration, or combining overview maps with minimal turn-by-turn guidance.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can access the turn-by-turn data feed and detailed navigation events to create highly customized navigation interfaces.\u003c/p\u003e\n"]]],[],null,["# Custom navigation experience\n\nThe Navigation SDK provides different ways to integrate a navigation\nexperience into your app. This page explains what a custom navigation experience\nis and how it differs from other navigation experiences that are available in\nthe Navigation SDK.\n\nWhat is a custom navigation experience?\n---------------------------------------\n\nThe primary way to implement the Navigation SDK is to use the [Google\nnavigation\nexperience](/maps/documentation/navigation/ios-sdk/intro-google-nav),\nwhich lets you embed a turn-by-turn navigation experience that uses\nGoogle-provided UI elements and visuals --- similar to the navigation experience\nwithin the Google Maps apps. If you need more flexibility than the Google\nnavigation experience offers, you can implement a custom navigation experience.\nA custom navigation experience refers to anything from eliminating turn guidance\nentirely with and running navigation only as a background process, to projecting\na highly customized guidance experience to a screen separate from the device\nthat runs the navigation. With a custom navigation experience, your app calls\nthe Navigation SDK to request a turn-by-turn navigation feed, and then\nyou provide and manage the UI elements and visuals that the user sees in the\nnavigation experience. While using the Google navigation experience is generally\neasier to implement, building your own custom navigation experience allows for\nmore customization.\n\nWhen you create a custom navigation experience, your app calls the Navigation\nSDK to start, run, and stop navigation, using the following flow:\n\n1. **Start navigation** . As with the Google navigation experience, a custom\n navigation experience still involves creating a navigation instance and\n setting the destination. However, with a customized navigation experience,\n you achieve this by first establishing a navigation session using\n `GMSNavigationService.createNavigationSession`, which is a state-bearing\n non-UI object that can operate either with a view controller, or without\n one.\n\n \u003cbr /\u003e\n\n For more information, see [Details about the turn-by-turn data\n feed](/maps/documentation/navigation/ios-sdk/nav-only-feed).\n\n **See the demo:** The download of the Navigation SDK contains a demo\n you can run to see an example of a navigation experience that switches\n between turn-by-turn guidance through standard navigation to a navigation\n experience that shows only the device location moving along a road\n polyline.\n2. **Active navigation** . Here is another key difference between a\n Google-provided navigation experience and a custom navigation experience.\n Instead of handing off guidance to the built-in event manager of the\n Navigation SDK, you set up a listener for detailed turn-by-turn guidance by implementing the `GMSNavigatorListener` protocol, and then implement event\n handlers. This allows your experience to respond to the events described in\n [Listen for navigation\n events](/maps/documentation/navigation/ios-sdk/events).\n\n3. **End navigation**. As with the Google navigation experience, custom\n navigation also requires you to terminate navigation in the manner best\n suited for the app's experience.\n\nWhen might you use a custom navigation experience?\n--------------------------------------------------\n\nThe following table describes some custom navigation scenarios.\n\n| **Example scenario** | **High-level steps** |\n|----------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| You need to provide text-only driver guidance for small devices such as 2-wheeled vehicles. | Create your navigator and set up the turn-by-turn guidance as a data feed to a small screen device while the navigator runs on the driver's mobile phone outside of their immediate view. |\n| You want to make your app available as a car service for drivers who use Apple Carplay. | 1. Set up the car service. 2. Set up your Navigation SDK project. 3. Establish a navigator if you haven't already. 4. Set up a listener for turn-by-turn guidance. 5. Draw the map on the auto app surface and populate the fields from the data feed you configured. For more information, see [Enable Navigation for Carplay](/maps/documentation/navigation/ios-sdk/carplay) |\n| Drivers using your app want an overview map for most of their journey, with only minimal turn-by-turn guidance for city streets. | Your app should allow drivers to enter and exit the Google navigation experience as they need, without alternating the navigator's settings for destination and trip mode. |"]]