Tài liệu này là bản cập nhật cho 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 theo phiên bản mới của Places API ra mắt vào năm 2023-2024 và Routes API ra mắt vào năm 2023.
Thông thường, khi lái xe đến một địa điểm yêu thích (POI), người dùng sẽ thực sự cần chỉ đường đến một địa điểm gầ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ự, bãi đậu xe bên cạnh trung tâm mua sắm có thể là lựa chọn phù hợp hơn nhiều cho người dùng có ô tô. 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í mà họ sẽ đến, sau đó đề xuất cho người lái xe các điểm đến tuỳ chọn gần vị trí đó. Phương pháp này giú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 coi trọng thời gian của họ, chỉ cần 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.
Chúng tôi sẽ hướng dẫn cách bạn có thể sử dụng Places API mới và Routes API theo trình tự hoặc kết hợp để xác định vị trí phù hợp để đỗ xe bên cạnh điểm đế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 một chỗ đỗ xe khi lái xe đến gần điểm đến cuối cùng. Hãy xem xét kỹ 2 ví dụ về cách triển khai các trường hợp này.
Ví dụ 1 – một điểm du lịch không có bãi đỗ xe
Chọn một vị trí không kết nối trực tiếp với lề đường để có thể truy xuất riêng một tuyến đường, đích đến là Nhà thờ Đức Bà ở Paris và điểm bắt đầu sẽ là ga tàu Gare de l'Est (48.87697775149635, 2.3592247806755564).
Người lái xe rời khỏi trạm sạc 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 du lịch nổi tiếng trên một hòn đảo có cầu nối, một số đường một chiều và không có bãi đỗ xe lớn ở 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 Places API 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 Google Maps Platform Places và Routes API được bật trong Google Cloud Console. Để biết giải thích chi tiết hơn, 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 mới của Places API có định dạng mới. Các trường phản hồi không còn cố định nữa và với tư cách là nhà phát triển, bạn phải xác định một fieldmask trong tiêu đề. Việc sử dụng fieldmask đượ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 sẽ cung cấp các 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 thấy, toạ độ này thực sự chỉ đến Nhà thờ Đức Bà.
![]() |
![]() |
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 có thể muốn tìm trạm sạc. Trải nghiệm của người dùng sẽ khác nhau tuỳ thuộc vào thiết bị và màn hình, nhưng bạn có thể cân nhắc sử dụng một đoạn văn bản hộp thoại tinh tế sẽ biến mất sau một khoảng thời gian ngắn trong trường hợp này. Để tìm bãi đỗ xe gần Nhà thờ Đức Bà, hãy thực hiện một tìm kiếm lân cận bằng Places API với các loại "parking" và "electric_vehicle_charging_station" trong bán kính 500 mét. Ví dụ sau đây sẽ thiên về kết quả là các khu vực đỗ xe trong vòng 500 mét tính từ 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ù khi 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 khi chúng ta thực hiện một yêu cầu Routes API.
2. Yêu cầu Routes API
Để tìm tuyến đường từ nhà ga đến một trạm sạc gần Nhà thờ Đức Bà, bạn cần thực hiện một yêu cầu Routes API. 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 lựa 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 Routes API thường chứa nhiều đề xuất về tuyến đường. Để đưa dữ liệu tuyến đường vào phản hồi, hãy xác định "routes.legs" trong fieldmask. Mỗi tuyến đường bao gồm nhiều "chặng" và những chặng này chứa nhiều "bước" cho biết khoảng cách di chuyển và toạ độ. Để tìm toạ độ cuối cùng có thể đến được bằng ô tô, 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 mà 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 nhìn vào bản đồ hoặc Google Street View, bạn sẽ thấy rằng vị trí này chỉ cách Nhà thờ Đức Bà một đoạn đi bộ rất ngắn, khoảng 6-7 phút.
Tuyến đường đi bộ từ điểm đỗ xe có trạm sạc đến Nhà thờ Đức Bà
Tóm tắt ví dụ 1
Như bạn thấy, việc tìm một khu vực đỗ xe 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 cố gắng tìm chỗ đỗ xe ở một điểm du lịch đông đúc. Tóm lại, chúng tôi đã thực hiện các yêu cầu API sau:
- Yêu cầu tìm kiếm văn bản Places API để tìm toạ độ của Nhà thờ Đức Bà
- Một lượt tìm kiếm lân cận bằng Places API để tìm khu vực đỗ xe có trạm sạc xe điện trong vòng 500 mét tính từ những toạ độ đó
- Một yêu cầu Routes API để tìm tuyến đường đến trạm sạc
Ví dụ 2 – Chỉ đường đến một nhà ga trong sân bay lớn
Hãy xem xét một ví dụ khác khi 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 Sân vận động Wembley, Vương quốc Anh (51.557263604707224, -0.2794575145680608) và đang cố gắng đến Nhà ga số 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 trong Places API mới là khả năng xác định các loại chính làm tiêu chí tìm kiếm kết hợp với API dự đoán các cơ sở phụ làm kết quả tìm kiếm tiềm năng. Trong trường hợp này, điều đó có nghĩa là khi bạn tìm kiếm một sân bay và bãi đậu xe, kết quả cũng sẽ trả về các nhà ga hoặc bãi đậu xe. Bạn có thể xem danh sách đầy đủ các loại cần đưa vào hoặc loại trừ trong tài liệu.
curl -X POST -d '{
"input": "Heathrow",
"includedPrimaryTypes": ["airport", "parking"]
}' \
-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 nhà ga và từng điểm dừng tại các nhà ga đó. 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 chứ không phải 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'
Tương tự như 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ùng của hành trình và toạ độ vĩ độ và kinh độ của vị trí cuối cùng (51.4714348, "longitude": -0.48967890000000003).
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à lợi ích về thời gian tiết kiệm được cho người lái xe có thể đo lường được. Chúng tôi đã thực hiện các yêu cầu sau:
- Yêu cầu tự động hoàn thành Places API (mới) để tìm nhà ga số 5 của sân bay Heathrow
- Yêu cầu Routes API để lấy tuyến đường từ Wembley đến nhà ga số 5
Ví dụ này chỉ đề cập đến một số tính năng mới của Places API. Hãy xem một số loại địa điểm mới, chẳng hạn như đường băng và sân bay quốc tế.
Kết luận
Như bạn thấy, công sức phát triển cần thiết để cung cấp dịch vụ cao cấp cho khách hàng đi ô tô là khá nhỏ và bạn có thể cho thấy cách bạn 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 để giúp bạn tạo các dịch vụ cho khách hàng. Hãy xem kho lưu trữ GitHub có sẵn công khai của chúng tôi 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 của Places API (mới): 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 của Nền tảng Google Maps