Bu dokümanda, görevleri nasıl oluşturacağınızı ve kullanacağınızı bildiğiniz varsayılmaktadır. Sağlar Gönderim görevlerinin aşağıdaki şekillerde nasıl yapılandırılacağına dair belirli örnekler:
Gönderim görevi için hedef zaman aralığını ayarlama: Zaman aralığını ayarlama tamamlanması gereken aktiviteleri ifade eder.
Görev görünürlüğünü özelleştir: Şunlar için görev etkinliklerinin görünürlüğünü özelleştirin: müşterilere veya filo operatörlerine gösterme.
Gönderim görevleriyle ilgili alanlarla ilgili ayrıntılar için Gönderim görevleri oluşturma bölümüne bakın. Mevcut görevlerle ilgili ek bilgileri güncellediğinizde, alanlarınıza ek olarak görev için alakalı tanımlayıcıyı görevler için güncelleme yapabilirsiniz.
Hedef zaman aralığını belirleme
Hedef zaman aralığı, görevin tamamlanması için gereken TimeWindow'dır. tamamlandı. Örneğin, teslimata bir teslimat süresi aralığı bildirirseniz görev hedef zaman aralığını kullanarak bu zaman aralığını uyarı oluşturabilir veya bu verileri geçmiş gezi performansını analiz etmek için kullanabilirsiniz.
Hedef zaman aralığı, bir başlangıç ve bitiş zamanından oluşur ve daima tetikte olursunuz. Hedef zaman aralığı, yönlendirmeyi etkilemez gösterir.
Aşağıdaki örnekler, Java gRPC
kitaplığını veya UpdateTask
için HTTP REST isteği oluşturmayı öğrenin. Şunları yapabilirsiniz:
aynı zamanda bu alanı görevin oluşturulması sırasında da ayarlamış olmanız gerekir.
gRPC
static final String PROJECT_ID = "my-delivery-co-gcp-project";
static final String TASK_ID = "task-8241890";
DeliveryServiceBlockingStub deliveryService =
DeliveryServiceGrpc.newBlockingStub(channel);
// Task settings
String taskName = "providers/" + PROJECT_ID + "/tasks/" + TASK_ID;
Task task = Task.newBuilder()
.setName(taskName)
.setTargetTimeWindow(
TimeWindow.newBuilder()
.setStartTime(Timestamp.newBuilder().setSeconds(1680123600))
.setEndTime(Timestamp.newBuilder().setSeconds(1680130800)))
.build();
// Task request
UpdateTaskRequest updateTaskRequest =
UpdateTaskRequest.newBuilder() // No need for the header
.setTask(task)
.setUpdateMask(FieldMask.newBuilder().addPaths("targetTimeWindow"))
.build();
try {
Task updatedTask = deliveryService.updateTask(updateTaskRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND:
break;
case PERMISSION_DENIED:
break;
}
return;
}
REST
HTTP kullanarak görev zaman aralığı ayarlamak için PATCH
işlevini çağırın ve
targetTimeWindow
parametresini güncellemek için updateMask
kullanın:
PATCH https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks/<id>?updateMask=targetTimeWindow
Burada <id>, görev için benzersiz bir tanımlayıcıdır. İstek başlığı Bearer <token> değerine sahip bir Yetkilendirme alanı içermelidir. Burada <token>, yönergelere uygun şekilde sunucunuz tarafından verilir Hizmet hesabı rolleri ve JSON Web jetonları konularında açıklanmıştır.
# Set JWT, PROJECT_ID, and TASK_ID in the local environment
curl -X PATCH "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/tasks/${TASK_ID}?updateMask=targetTimeWindow" \
-H "Content-type: application/json" \
-H "Authorization: Bearer ${JWT}" \
--data-binary @- << EOM
{
"targetTimeWindow": {
"startTime": "2023-03-29T21:00:00Z",
"endTime": "2023-03-29T23:00:00Z"
}
}
EOM
Görev görünürlüğünü özelleştirin
Fleet Engine, varsayılan olarak görev etkinlikleri için görünürlük sağlar. Bu sayede hem gönderi alan müşterilere hem de filo operatörlerine gösterilmelidir hakkında da bilgi edindiniz. Bu bilgiler arasında Müşteriye paket teslimatıyla ilgili bildirim göndermeden önce durursa durumu. Bu bilgileri her görev için ayrı ayrı özelleştirip size daha uygun hale getirebilirsiniz. en iyi uygulamaları paylaşacağız.
Bu bölümde, harita üzerinde izlenen nesnelerin görünürlük kuralları açıklanmaktadır. Bu kurallar iki nesne kategorisi için geçerlidir:
- Konum işaretçisinin görünürlüğü
- Çoklu çizgiler ve TVS gibi aktif araç görevleri için görev verilerinin görünürlüğü
Konum işaretçisi görünürlük kuralları
Fleet Engine, kargo teslimat konumu için konum işaretçileri gösteriyor haritada gösterilir.
Görev verileri görünürlük kuralları
Bu bölümde, görev verilerine uygulanan varsayılan görünürlük kuralları açıklanmaktadır. Yalnızca etkin araç görevlerini özelleştirebilirsiniz. Bu nedenle özelleştirilmiş görünürlük kuralları uygulayabilir.
Aşağıdaki görevler özelleştirilemez:
- Planlanan aktarmalar
- Kullanılabilir olmayan görevler
- Etkin olmayan araç görevleri
Kullanılabilir olmayan görevler görünürlük kuralları
Varsayılan olarak, en az bir araç harita üzerinde görünmez kullanılamaması görevi, izlenen göreve atanmış olmalıdır. Örneğin, sürücünün ara vermesi veya araça giden rotada yakıt doldurma işlemi yapması takip edilen kargo bedeli. Tahmini varış zamanı ve tahmini görev tamamlanma süresi hâlâ kullanılabilir. Bu kuralı özelleştiremezsiniz.
Etkin araç görevlerinin görünürlüğü
TaskTrackingInfo
nesnesi, seçtiğiniz bir dizi veri öğesini sağlar
hale getirebilirsiniz. Varsayılan olarak bu alanlar
görev araca atandığında ve araç şu anda görünür olduğunda
en fazla 5 durak bulunur. Görünürlük, görev tamamlandığında veya
iptal edildi.
Görünürlük yapılandırmasını şu ayarları yaparak görev bazında özelleştirebilirsiniz:
Görev oluştururken veya güncellerken görevdeki TaskTrackingViewConfig
bir ekip toplayabildiler. Bu şekilde, bağımsız veri öğeleri için
kullanılabilir.
Aşağıdaki tabloda, görünürlük kurallarını uygulayabileceğiniz alanlar gösterilmektedir.
Görünürlük kuralları için araç görev alanları |
---|
|
Bu tabloda, yukarıda listelenen alanlar için kullanılabilecek görünürlük seçenekleri gösterilmektedir.
Görünürlük seçenekleri |
---|
|
Rota çoklu çizgileri ve araç konumu görünürlük kuralları
Takip edilen bir rota için, rota çoklu çizgilerinin görünürlüğü şuna tabidir: görünür. Etkin bir rota üzerinde çoklu çizgi varsa Aracın görünmediği bir yerde, araç konumu yine de sonucuna göre belirlenir. Dolayısıyla, rota çoklu çizgisi görünürlük, araç görünürlüğünden daha kısıtlayıcı olmalıdır.
Geçerli bir rota çoklu çizgileri / araç konumu belirtmek için bu kuralları uygulayın. görünürlük kombinasyonu
Rota çoklu çizgileri ve araç konumu, aynı görünürlük seçeneklerini belirtir
Bu senaryoda, hem çoklu çizgi hem de araç konumu aynı şekilde ayarlanıyor. şunları içerir:
- kalan şarj noktası sayısı
- TVS'ye kalan süre
- kalan sürüş mesafesi
Kurallara uymak için rota çoklu çizgilerinin görünürlük değeri daha düşük olmalıdır araç görünürlüğü için ayarlanan değere eşit veya bu değere eşit. Bu örnekte çoklu çizgi için kalan durdurma eşiği 3 olarak ayarlanır ve bu değer şundan küçüktür: araç için belirtilen 5 değeri. Bu, takip edilen kampanyaların yolculuk görev konumundan 5 durak uzakta olduğunda, araç görünür ancak söz konusu aracın rotası, yolculuk 3 durak uzaktakie kadar görünmez.
```js
"taskTrackingViewConfig": {
"routePolylinePointsVisibility": {
"remainingStopCountThreshold": 3
},
"vehicleLocationVisibility": {
"remainingStopCountThreshold": 5
},
}
```
Rota çoklu çizgileri ve araç konumu, farklı görünürlük seçeneklerini belirtir
Rota çoklu çizgileri ve araç konumu farklı görünürlük seçeneklerine sahip olduğunda, Aracın konumu, yalnızca görünürlük seçeneklerinin her ikisi de olduğunda görünür memnun kaldım. Çoklu çizgi görünürlüğü ise yine görünürlük kurallarına tabidir gerekir:
- Her zaman görünür: Rota çoklu çizgisi, her zaman görünür seçeneğini kullanmalıdır araç konumu tarafından her zaman aynı görünürlük seçeneği sağlandığında görünür görünürlük seçeneği.
- Hiçbir zaman görünür olmayan: Rota çoklu çizgisi, hiçbir zaman görünür görünürlük kullanmamalıdır seçeneğini kullanabilirsiniz.
Bir örnek aşağıda verilmiştir:
"taskTrackingViewConfig": {
"routePolylinePointsVisibility": {
"remainingStopCountThreshold": 3
},
"vehicleLocationVisibility": {
"remainingDrivingDistanceMetersThreshold": 3000
},
}
Bu örnekte, aracın konumu yalnızca kalan durak sayı en az 3 VE kalan sürüş mesafesi en az 3.000 ise metre.
Örnek görev görünürlüğünü özelleştirme
Aşağıdaki örneklerde, aşağıdakileri içeren bir görevin nasıl ayarlanacağı gösterilmektedir görünürlük kuralları:
- Araç 3 durak içindeyse rota çoklu çizgilerini gösterin.
- Kalan sürüş mesafesi 5.000 metreden kısaysa TVS'yi gösterin.
- Kalan aktarma sayısını hiçbir zaman gösterme.
- Her bir alan, Araç, göreve 5 durak mesafede.
gRPC veya REST için TaskTrackingViewConfig
politikasına bakın.
gRPC
static final String PROJECT_ID = "my-delivery-co-gcp-project";
static final String TASK_ID = "task-8241890";
DeliveryServiceBlockingStub deliveryService =
DeliveryServiceGrpc.newBlockingStub(channel);
// Task settings
String taskName = "providers/" + PROJECT_ID + "/tasks/" + TASK_ID;
Task task = Task.newBuilder()
.setName(taskName)
.setTaskTrackingViewConfig(
TaskTrackingViewConfig.newBuilder()
.setRoutePolylinePointsVisibility(
VisibilityOption.newBuilder().setRemainingStopCountThreshold(3))
.setEstimatedArrivalTimeVisibility(
VisibilityOption.newBuilder().remainingDrivingDistanceMetersThreshold(5000))
.setRemainingStopCountVisibility(
VisibilityOption.newBuilder().setNever(true)))
.build();
// Task request
UpdateTaskRequest updateTaskRequest =
UpdateTaskRequest.newBuilder() // No need for the header
.setTask(task)
.setUpdateMask(FieldMask.newBuilder().addPaths("taskTrackingViewConfig"))
.build();
try {
Task updatedTask = deliveryService.updateTask(updateTaskRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND:
break;
case PERMISSION_DENIED:
break;
}
return;
}
REST
HTTP kullanarak görev izleme görünümü yapılandırma penceresini ayarlamak için PATCH
ve
taskTrackingViewConfig
parametresini güncellemek için updateMask
kullanın:
PATCH https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks/<id>?updateMask=taskTrackingViewConfig
Örneğin:
# Set JWT, PROJECT_ID, and TASK_ID in the local environment
curl -X PATCH "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/tasks/${TASK_ID}?updateMask=taskTrackingViewConfig" \
-H "Content-type: application/json" \
-H "Authorization: Bearer ${JWT}" \
--data-binary @- << EOM
{
"taskTrackingViewConfig": {
"routePolylinePointsVisibility": {
"remainingStopCountThreshold": 3
},
"estimatedArrivalTimeVisibility": {
"remainingDrivingDistanceMetersThreshold": 5000
},
"remainingStopCountVisibility": {
"never": true
}
}
}
EOM