Mẹo để tạo trải nghiệm người dùng tốt nhất khi điều hướng đến các vị trí bằng ô tô

Tài liệu này là bản cập nhật của một bài viết cũ sử dụng các phiên bản trước của API GMP. Nội dung này được cập nhật lên phiên bản mới của API Địa điểm ra mắt vào năm 2023-24 và API Tuyến đường ra mắt vào năm 2023.

Thông thường, khi người dùng lái xe đến một điểm yêu thích (POI), họ sẽ thực sự cần được chỉ đường đến một vị trí lân cận, chẳng hạn như bãi đỗ xe hoặc điểm truy cập. Hãy hình dung một người lái xe cần đến sân bay hoặc trung tâm mua sắm. Khi đến sân bay, tài xế đang cố gắng đến một nhà ga hoặc điểm trả khách thay vì trung tâm của khu vực sân bay. Tương tự, đối với người dùng có ô tô, bãi đỗ xe bên cạnh trung tâm mua sắm có thể là lựa chọn tốt hơn nhiều. Trong trường hợp này, khi phát triển một ứng dụng hoặc dịch vụ để hướng dẫn người lái xe, trước tiên, hãy tìm vị trí họ sẽ đến, sau đó cung cấp cho người lái xe các điểm đến không bắt buộc gần vị trí đó. Phương pháp này cho phép bạn cung cấp dịch vụ tốt hơn cho khách hàng và thể hiện rằng bạn trân trọng thời gian của họ, với một nỗ lực phát triển nhỏ nhưng thông minh tận dụng dữ liệu vị trí do Nền tảng Google Maps cung cấp.

Sơ đồ hệ thống

Chúng tôi sẽ hướng dẫn bạn cách sử dụng API Địa điểm mớiAPI Tuyến đường theo trình tự hoặc kết hợp để xác định vị trí phù hợp để đỗ xe bên cạnh đích đến. Giải pháp này nhằm loại bỏ sự không chắc chắn và nhiều lượt tương tác để tìm chỗ đỗ xe khi lái xe đến gần điểm đến cuối cùng. Hãy xem xét hai ví dụ về cách triển khai chi tiết các trường hợp này.

Ví dụ 1: một điểm tham quan không có bãi đỗ xe

Chọn một vị trí không liên kết trực tiếp với đường bên lề để phải truy xuất riêng một tuyến đường, đích đếnNhà thờ Đức Bà ở Paris và điểm xuất phát là ga xe lửa Gare de l'Est (48.87697775149635, 2.3592247806755564).

Gare l'Est

Người lái xe rời ga cách Nhà thờ Đức Bà khoảng 16 phút về phía bắc. Nhà thờ Đức Bà là một điểm tham quan du lịch nổi tiếng trên một hòn đảo có cầu, một số đường một chiều và không có bãi đỗ xe lớn nào ở gần đó. Vì vậy, đây sẽ là một thử thách thú vị.

  1. Yêu cầu Places API

Yêu cầu API Địa điểm mẫu này đang sử dụng tính năng tìm kiếm bằng văn bản để tìm Nhà thờ Đức Bà. Hãy xem tài liệu dành cho nhà phát triển để biết thông tin chi tiết. "$APIKEY" trong các ví dụ này là khoá API mà bạn có cho API Địa điểm và Tuyến đường của Google Maps Platform đã bật trong Google Cloud Console. Để biết thêm thông tin giải thích chi tiết, hãy xem tài liệu về cách bắt đầu sử dụng Google Maps Platform.

Các yêu cầu API Địa điểm mới có định dạng mới. Các trường phản hồi không còn cố định và với tư cách là nhà phát triển, bạn phải xác định một mặt nạ trường trong tiêu đề. Việc sử dụng mặt nạ trường được xác định trong tài liệu.

curl -X POST --data @notre_dame.json \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: $APIKEY" \
-H 'X-Goog-FieldMask: places.id,places.displayName,places.formattedAddress,places.location' \
'https://places.googleapis.com/v1/places:searchText'

Với nội dung "notre_date.json" cho các tham số tìm kiếm:

{
   "textQuery": "Notre Dame, Paris",
   "languageCode": "en"
}

Phản hồi cho yêu cầu trên cung cấp toạ độ vĩ độ và kinh độ sau:

{
  "places": [
    {
      "id": "ChIJATr1n-Fx5kcRjQb6q6cdQDY",
      "formattedAddress": "6 Parvis Notre-Dame - Pl. Jean-Paul II, 75004 Paris, France",
      "location": {
        "latitude": 48.852968200000007,
        "longitude": 2.3499021
      },
      "displayName": {
        "text": "Cathédrale Notre-Dame de Paris",
        "languageCode": "en"
      }
    }
  ]
}

Như bạn có thể thấy, tọa độ này thực sự chỉ ra Nhà thờ Đức Bà.

Ảnh chụp cổng vào Nhà thờ Đức Bà Bản đồ khu vực Nhà thờ Đức Bà Paris

Là nhà phát triển hoặc nhà cung cấp dịch vụ, bạn nên tự động nhắc người lái xe "Bạn đang tìm chỗ đỗ xe gần Nhà thờ Đức Bà?" hoặc nếu người lái xe có xe điện thì bạn nên tìm trạm sạc. Trải nghiệm của người dùng sẽ khác nhau tuỳ theo thiết bị và màn hình, nhưng bạn nên cân nhắc sử dụng văn bản hộp thoại tinh tế biến mất sau một khoảng thời gian ngắn trong trường hợp này. Để tìm chỗ đỗ xe gần Nhà thờ Đức Bà, hãy thực hiện một lượt tìm kiếm API Địa điểm ở gần với các loại "bãi_đỗ_xe" và "trạm_sạc_xe_điện" có bán kính 500 mét. Ví dụ sau đây sẽ làm sai lệch kết quả cho các khu vực đỗ xe trong phạm vi 500 mét của Nhà thờ Đức Bà.

curl -X POST -d '{
  "includedTypes": ["parking", "electric_vehicle_charging_station"],
  "maxResultCount": 10,
  "rankPreference": "DISTANCE",
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 48.852968200000007,
        "longitude": 2.3499021},
      "radius": 500.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: $APIKEY" \
-H "X-Goog-FieldMask: places.displayName,places.location" \
https://places.googleapis.com/v1/places:searchNearby

Kết quả đầu tiên là một trạm sạc tại 48.854981, 2.350629, mặc dù vào thời điểm bạn chạy ví dụ này, kết quả có thể khác. Sử dụng vị trí này trong phần tiếp theo, nơi chúng ta thực hiện yêu cầu API Routes.

  1. **Yêu cầu Routes API **

Để tìm tuyến đường từ nhà ga đến trạm sạc gần Nhà thờ Đức Bà, bạn cần thực hiện yêu cầu Routes API. Bạn chỉ cần đặt các tham số điểm xuất phát và điểm đến. Hãy xem tài liệu dành cho nhà phát triển để biết thêm các tuỳ chọn.

curl -X POST -d '{
  "origin":{
    "location":{
      "latLng":{
        "latitude": 48.87697775149635,
        "longitude": 2.3592247806755564
      }
    }
  },
  "destination":{
    "location":{
      "latLng":{
       "latitude": 48.854981,
        "longitude": 2.350629
      }
    }
  },
  "travelMode": "DRIVE",
  "routingPreference": "TRAFFIC_AWARE",
  "departureTime": "2024-05-16T15:01:23.045123456Z",
  "computeAlternativeRoutes": false,
  "routeModifiers": {
    "avoidTolls": false,
    "avoidHighways": false,
    "avoidFerries": false
  },
  "languageCode": "en-US",
  "units": "METRIC"
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: $APIKEY" \
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs,routes.polyline.encodedPolyline' \
'https://routes.googleapis.com/directions/v2:computeRoutes'

Phản hồi của API tuyến đường thường chứa nhiều đề xuất tuyến đường. Để đưa dữ liệu tuyến vào phản hồi, hãy xác định "routes.legs" trong mặt nạ trường. Mỗi tuyến đường bao gồm nhiều "đoạn" và các đoạn đó chứa nhiều "bước" cho biết khoảng cách và toạ độ di chuyển. Để tìm toạ độ cuối cùng có thể đến được bằng xe, hãy sử dụng trường "endLocation" của bước cuối cùng trong chặng cuối cùng của tuyến đường bạn đã chọn. "latitude": 48.854937299999996, "longitude": 2.3505841999999997

Vị trí này có vẻ không phải là lựa chọn đầu tiên, nhưng khi xem bản đồ hoặc Chế độ xem đường phố của Google, bạn sẽ thấy vị trí này cách Nhà thờ Đức Bà một quãng đi bộ rất ngắn, khoảng 6-7 phút.

Chỉ đường đến Nhà thờ Đức Bà

Tuyến đi bộ từ điểm đỗ xe của trạm sạc đến Nhà thờ Đức Bà

Tóm tắt ví dụ 1

Như bạn có thể thấy, việc tìm khu vực đỗ xe cho ô tô chỉ cần một vài lệnh gọi API và hiển thị đề xuất cho người lái xe. Điều này giúp người dùng tiết kiệm thời gian vì họ không phải lái xe trên đường một chiều hoặc tìm chỗ đỗ xe ở một điểm tham quan đông đúc. Tóm lại, chúng ta đã thực hiện các yêu cầu API sau:

  • Yêu cầu tìm kiếm bằng văn bản của API Địa điểm để tìm toạ độ của Nhà thờ Đức Bà
  • Tìm kiếm địa điểm lân cận bằng API Địa điểm để tìm một khu vực đỗ xe có trạm sạc xe điện trong phạm vi 500 mét từ các toạ độ đó
  • Yêu cầu API Routes để tìm tuyến đường đến trạm sạc

Ví dụ 2 – Hướng dẫn đến một nhà ga trong sân bay lớn

Bản đồ sân bay Heathrow

Hãy xem xét một ví dụ khác trong đó người lái xe đang cố gắng đến một khu vực rộng lớn có nhiều vị trí, địa điểm yêu thích hoặc điểm trả khách tiềm năng. Người lái xe đang rời khỏi sân vận động Wembley, Vương quốc Anh (51.557263604707224, -0.2794575145680608) và đang cố gắng đến Nhà ga 5 của sân bay London Heathrow.

Điểm nổi bật của tính năng tự động hoàn thành API Địa điểm mới là khả năng xác định loại chính làm tiêu chí tìm kiếm kết hợp với API dự đoán cơ sở lưu trú phụ làm kết quả tìm kiếm tiềm năng. Trong trường hợp này, tức là việc tìm kiếm sân bay cũng sẽ trả về các nhà ga. Bạn có thể xem danh sách đầy đủ các loại để đưa vào hoặc loại trừ trong tài liệu.

curl -X POST -d '{
  "input": "Heathrow",
  "includedPrimaryTypes": ["airport"]
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: $APIKEY" \
https://places.googleapis.com/v1/places:autocomplete

Truy vấn ở trên cung cấp cho chúng ta danh sách các trạm và điểm trả xe riêng lẻ tại các trạm đó. Trong danh sách kết quả, chúng ta có thể tìm thấy "Nhà ga số 5 của sân bay London Heathrow" và mã địa điểm của nhà ga này:

"place_id" : "ChIJo21hnPxxdkgRksRL0KQRWII",

Bằng cách sử dụng tham số "placeId", chúng ta có thể cho Routes API biết rằng chúng ta đang cố gắng đến một địa điểm thay vì một số toạ độ tuỳ ý.

curl -X POST -d '{
  "origin":{
    "location":{
      "latLng":{
        "latitude": 51.557263604707224,
        "longitude": -0.2794575145680608
      }
    }
  },
  "destination":{
    "placeId": "ChIJo21hnPxxdkgRksRL0KQRWII"
  },
  "travelMode": "DRIVE",
  "routingPreference": "TRAFFIC_AWARE",
  "departureTime": "2024-05-16T15:01:23.045123456Z",
  "computeAlternativeRoutes": false,
  "languageCode": "en-US",
  "units": "METRIC"
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: $APIKEY" \
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs,routes.polyline.encodedPolyline' \
'https://routes.googleapis.com/directions/v2:computeRoutes'

Xin nhắc lại, như trong ví dụ trước, bằng cách đọc tất cả các bước trong phản hồi JSON, bạn sẽ tìm thấy phần cuối của hành trình và toạ độ lat và long của vị trí kết thúc (51.4714348, "longitude": -0.48967890000000003).

Chế độ xem đường phố của Nhà ga 5

Tóm tắt ví dụ 2

Giống như trong ví dụ trước, nỗ lực phát triển để cung cấp hướng dẫn cải tiến cho người lái xe là rất nhỏ và có thể đo lường được lợi ích về thời gian tiết kiệm được cho người lái xe. Chúng tôi đã thực hiện những yêu cầu sau:

  • Yêu cầu tự động hoàn thành (mới) của API Địa điểm để tìm nhà ga 5 của sân bay Heathrow
  • Yêu cầu API Routes để lấy tuyến đường từ Wembley đến nhà ga 5

Ví dụ này chỉ đề cập đến một số tính năng mới của API Địa điểm. Hãy xem một số loại địa điểm mới như đường băng và sân bay quốc tế.

Kết luận

Như bạn có thể thấy, nỗ lực phát triển cần thiết để cung cấp dịch vụ cao cấp cho những khách hàng đi bằng ô tô là khá nhỏ và bạn có thể thể hiện cách bạn đang suy nghĩ về nhu cầu của khách hàng.

Đối với mục đích phát triển, bạn có thể sử dụng nhiều thư viện và công cụ có sẵn để xây dựng dịch vụ cho khách hàng. Hãy xem kho lưu trữ GitHub công khai của chúng tôi dành cho Nền tảng Google Maps.

Hành động tiếp theo

Bắt đầu sử dụng GMP : https://developers.google.com/maps/get-started

Tài liệu đọc thêm được đề xuất

Tài liệu về tính năng tự động hoàn thành (mới) của API Địa điểm: https://developers.google.com/maps/documentation/places/web-service/place-autocomplete

Tài liệu về Routes API: https://developers.google.com/maps/documentation/routes

Người đóng góp

Tác giả chính: Mikko Toivanen | Kỹ sư giải pháp Nền tảng Google Maps