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.
Để có hiệu suất tốt nhất với Fleet Engine, hãy cung cấp cho Fleet Engine một luồng thông tin cập nhật về vị trí của xe. Bạn có thể sử dụng một trong hai cách sau để cung cấp những thông tin cập nhật này:
Sử dụng Driver SDK: lựa chọn đơn giản nhất. Xem tài liệu về Driver SDK cho Android hoặc iOS.
Sử dụng mã tuỳ chỉnh: hữu ích nếu vị trí được chuyển tiếp qua phần phụ trợ của bạn hoặc nếu bạn sử dụng các thiết bị không phải Android hoặc iOS. Hướng dẫn này đề cập đến phương pháp đó.
Nếu không sử dụng Driver SDK để cập nhật vị trí của xe, bạn có thể gọi trực tiếp đến Fleet Engine bằng vị trí của xe. Đối với mọi xe đang hoạt động, Fleet Engine dự kiến sẽ nhận được thông tin cập nhật vị trí ít nhất 1 lần mỗi phút và tối đa 1 lần mỗi 5 giây. Những nội dung cập nhật này chỉ yêu cầu đặc quyền Người dùng Fleet Engine Driver SDK.
Ví dụ về cách cập nhật vị trí của xe
Java
staticfinalStringPROJECT_ID="project-id";staticfinalStringVEHICLE_ID="vid-8241890";VehicleServiceBlockingStubvehicleService=VehicleService.newBlockingStub(channel);StringvehicleName="providers/"+PROJECT_ID+"/vehicles/"+VEHICLE_ID;VehicleupdatedVehicle=Vehicle.newBuilder().setLastLocation(VehicleLocation.newBuilder().setSupplementalLocation(LatLng.newBuilder().setLatitude(37.3382).setLongitude(121.8863)).setSupplementalLocationTime(now()).setSupplementalLocationSensor(LocationSensor.CUSTOMER_SUPPLIED_LOCATION).setSupplementalLocationAccuracy(DoubleValue.of(15.0)))// Optional.build();UpdateVehicleRequestupdateVehicleRequest=UpdateVehicleRequest.newBuilder().setName(vehicleName).setVehicle(updatedVehicle).setUpdateMask(FieldMask.newBuilder().addPaths("last_location")).build();try{VehicleupdatedVehicle=vehicleService.updateVehicle(updateVehicleRequest);}catch(StatusRuntimeExceptione){Statuss=e.getStatus();switch(s.getCode()){caseNOT_FOUND:// Most implementations will call CreateVehicle in this casebreak;casePERMISSION_DENIED:break;}return;}// If no Exception, Vehicle updated successfully.
[null,null,["Cập nhật lần gần đây nhất: 2025-08-31 UTC."],[[["\u003cp\u003eFleet Engine requires frequent vehicle location updates for optimal performance, achievable through the Driver SDK or custom code.\u003c/p\u003e\n"],["\u003cp\u003eThe Driver SDK is the simplest method for location updates, with dedicated documentation for Android and iOS.\u003c/p\u003e\n"],["\u003cp\u003eFor custom solutions, direct calls to Fleet Engine can be made with location data, requiring updates every 5 seconds to 1 minute.\u003c/p\u003e\n"],["\u003cp\u003eVehicles can be updated using REST or client libraries, with code examples provided for both Java and REST.\u003c/p\u003e\n"]]],[],null,["# Update a vehicle location\n\n| **Note:** **Before constructing a vehicle request** , read the requirements under [Vehicle requests](/maps/documentation/mobility/fleet-engine/essentials/vehicles#vehicle_requests) in the Introduction.\n\nFor the best performance with Fleet Engine, provide it with a stream of vehicle\nlocation updates. Use either of the following ways to provide these updates:\n\n1. **Use the Driver SDK** : simplest option. See the Driver SDK documentation for [Android](/maps/documentation/mobility/driver-sdk/on-demand/android/minimum-requirements) or [iOS](//maps/documentation/mobility/driver-sdk/on-demand/ios/minimum-requirements).\n2. **Use custom code**: useful if locations are relayed through your backend, or if you use devices other than Android or iOS. This guide covers that approach.\n\nIf not using the Driver SDK to update the vehicle's location, you can make a\ndirect call to Fleet Engine with the vehicle's location. For any active vehicle,\nFleet Engine expects a location update at least once every minute and at most\nonce every 5 seconds. These updates require only *Fleet Engine Driver SDK User*\nprivileges.\n\nUpdate vehicle location example\n-------------------------------\n\n### Java\n\n static final String PROJECT_ID = \"\u003cvar translate=\"no\"\u003eproject-id\u003c/var\u003e\";\n static final String VEHICLE_ID = \"\u003cvar translate=\"no\"\u003evid-8241890\u003c/var\u003e\";\n\n VehicleServiceBlockingStub vehicleService = VehicleService.newBlockingStub(channel);\n\n String vehicleName = \"providers/\" + PROJECT_ID + \"/vehicles/\" + VEHICLE_ID;\n Vehicle updatedVehicle = Vehicle.newBuilder()\n .setLastLocation(VehicleLocation.newBuilder()\n .setSupplementalLocation(LatLng.newBuilder()\n .setLatitude(37.3382)\n .setLongitude(121.8863))\n .setSupplementalLocationTime(now())\n .setSupplementalLocationSensor(LocationSensor.CUSTOMER_SUPPLIED_LOCATION)\n .setSupplementalLocationAccuracy(DoubleValue.of(15.0))) // Optional\n .build();\n\n UpdateVehicleRequest updateVehicleRequest = UpdateVehicleRequest.newBuilder()\n .setName(vehicleName)\n .setVehicle(updatedVehicle)\n .setUpdateMask(FieldMask.newBuilder()\n .addPaths(\"last_location\"))\n .build();\n\n try {\n Vehicle updatedVehicle =\n vehicleService.updateVehicle(updateVehicleRequest);\n } catch (StatusRuntimeException e) {\n Status s = e.getStatus();\n switch (s.getCode()) {\n case NOT_FOUND:\n // Most implementations will call CreateVehicle in this case\n break;\n case PERMISSION_DENIED:\n break;\n }\n return;\n }\n // If no Exception, Vehicle updated successfully.\n\n### REST\n\n curl -X PUT \\\n \"https://fleetengine.googleapis.com/v1/providers/\u003cvar translate=\"no\"\u003eproject-id\u003c/var\u003e/vehicles/\u003cvar translate=\"no\"\u003evid-8241890\u003c/var\u003e?updateMask=last_location\" \\\n -H \"Authorization: Bearer $JWT\" \\\n -H \"Content-Type: application/json\" \\\n --data-binary @- \u003c\u003c EOM\n {\n \"supplementalLocation\": {\"latitude\": 12.1, \"longitude\": 14.5},\n \"supplementalLocationTime\": \"$(date -u --iso-8601=seconds)\",\n \"supplementalLocationSensor\": \"CUSTOMER_SUPPLIED_LOCATION\",\n \"supplementalLocationAccuracy\": 15\n }\n EOM\n\nSee [providers.vehicles.update](/maps/documentation/mobility/fleet-engine/reference/trips/rest/v1/providers.vehicles/update) reference.\n\nWhat's next\n-----------\n\n- [Get a vehicle](/maps/documentation/mobility/fleet-engine/essentials/vehicles/on-demand-get-vehicle)"]]