OptimizeToursResponse

Her aracın izlediği rotaları, atlanan gönderileri ve çözümün genel maliyetini içeren bir tur optimizasyonu sorunu çözüldükten sonraki yanıt.

JSON gösterimi
{
  "routes": [
    {
      object (ShipmentRoute)
    }
  ],
  "requestLabel": string,
  "skippedShipments": [
    {
      object (SkippedShipment)
    }
  ],
  "validationErrors": [
    {
      object (OptimizeToursValidationError)
    }
  ],
  "processedRequest": {
    object (OptimizeToursRequest)
  },
  "metrics": {
    object (Metrics)
  }
}
Alanlar
routes[]

object (ShipmentRoute)

Her araç için hesaplanan rotalar. i. rota, modeldeki i. araca karşılık gelir.

requestLabel

string

İstekle bir etiket belirtilmişse OptimizeToursRequest.label kopyası.

skippedShipments[]

object (SkippedShipment)

Atlanan tüm gönderilerin listesi.

validationErrors[]

object (OptimizeToursValidationError)

Bağımsız olarak tespit edebildiğimiz tüm doğrulama hatalarının listesi. OptimizeToursValidationError mesajıyla ilgili "BİRDEN FAZLA HATA" açıklamasına bakın. Hatalar yerine, solvingMode durumu DEFAULT_SOLVE ise uyarılar gösterilir.

processedRequest

object (OptimizeToursRequest)

Bazı durumlarda, gelen isteği çözmeden önce değiştiririz (ör. maliyet ekleme). solvingMode == TRANSFORM_AND_RETURN_REQUEST ise değiştirilen istek burada döndürülür.

Deneysel: Daha fazla bilgi için https://developers.google.com/maps/tt/route-optimization/experimental/objectives/make-request adresini inceleyin.

metrics

object (Metrics)

Bu çözümün süresi, mesafesi ve kullanım metrikleri.

OptimizeToursValidationError

Bir OptimizeToursRequest doğrulanırken karşılaşılan hata veya uyarıyı açıklar.

JSON gösterimi
{
  "code": integer,
  "displayName": string,
  "fields": [
    {
      object (FieldReference)
    }
  ],
  "errorMessage": string,
  "offendingValues": string
}
Alanlar
code

integer

Doğrulama hatası, her zaman mevcut olan (code, displayName) çiftiyle tanımlanır.

Bu bölümden sonraki alanlarda hatayla ilgili daha fazla bağlam bilgisi sağlanır.

BİRDEN FAZLA HATA: Birden fazla hata olduğunda doğrulama işlemi, bu hataların birkaçını vermeye çalışır. Derleyiciye benzer şekilde bu işlem de kusurludur. Bazı doğrulama hataları "kritik" olarak değerlendirilir. Bu hatalar, doğrulama sürecinin tamamını durdurur. Bu durum, diğerlerinin yanı sıra displayName="UNSPECIFIED" hataları için de geçerlidir. Bazı hatalar, doğrulama sürecinin diğer hataları atlamasına neden olabilir.

KARARLILIK: code ve displayName çok kararlı olmalıdır. Ancak zaman içinde yeni kodlar ve görünen adlar görünebilir. Bu durum, yeni hata eski hatayı gizlediği için belirli bir (geçersiz) isteğin farklı bir (code, displayName) çifti vermesine neden olabilir. Örneğin, "BİRDEN FAZLA HATA" başlıklı bölüme bakın.

displayName

string

Hata görünen adı.

fields[]

object (FieldReference)

Hata bağlamı 0, 1 (çoğu zaman) veya daha fazla alan içerebilir. Örneğin, 4 numaralı araç ve 2 numaralı gönderinin ilk teslim alma işlemi şu şekilde belirtilebilir:

fields { name: "vehicles" index: 4}
fields { name: "shipments" index: 2 subField {name: "pickups" index: 0} }

Ancak fields öğesinin kardinalitesinin belirli bir hata kodu için değişmemesi gerektiğini unutmayın.

errorMessage

string

Hatayı açıklayan, kullanıcıların okuyabileceği dize. code ile errorMessage arasında bire bir eşleme vardır (kod != "UNSPECIFIED" olduğunda).

KARARLILIK: Kararlı değil: Belirli bir code ile ilişkili hata mesajı zaman içinde değişebilir (umarız ki daha net bir hale gelir). Bunun yerine lütfen displayName ve code politikalarına güvenin.

offendingValues

string

Alanların değerlerini içerebilir. Bu özellik her zaman kullanılamaz. Kesinlikle bu özelliğe güvenmemeli ve yalnızca manuel model hata ayıklama için kullanmalısınız.

FieldReference

Doğrulama hatası için bir bağlam belirtir. FieldReference her zaman bu dosyadaki belirli bir alanı ifade eder ve aynı hiyerarşik yapıyı izler. Örneğin, 5 numaralı aracın startTimeWindows öğesinin 2. öğesini belirtmek için şunu kullanabiliriz:

name: "vehicles" index: 5 subField { name: "endTimeWindows" index: 2 }

Ancak mesajın kalabalık görünmesini önlemek için OptimizeToursRequest veya ShipmentModel gibi üst düzey öğeleri çıkarırız.

JSON gösterimi
{
  "name": string,
  "subField": {
    object (FieldReference)
  },

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "index": integer,
  "key": string
  // End of mutually exclusive fields.
}
Alanlar
name

string

Alan adı (ör. "araçlar").

subField

object (FieldReference)

Gerekirse yinelemeli olarak iç içe yerleştirilmiş alt alan.

Aşağıda, aynı anda kullanılamayan alanların listesi verilmiştir. Yanıt olarak en fazla bir alan ayarlanır:
index

integer

Yinelenen alanın dizini.

key

string

Alan bir haritaysa anahtar.

Birbirini dışlayan alanların sonu.

Metrikler

Tüm rotalarda toplanan genel metrikler.

JSON gösterimi
{
  "aggregatedRouteMetrics": {
    object (AggregatedMetrics)
  },
  "skippedMandatoryShipmentCount": integer,
  "usedVehicleCount": integer,
  "earliestVehicleStartTime": string,
  "latestVehicleEndTime": string,
  "costs": {
    string: number,
    ...
  },
  "totalCost": number
}
Alanlar
aggregatedRouteMetrics

object (AggregatedMetrics)

Rotalar genelinde toplanan verileri içerir. Her metrik, aynı ada sahip tüm ShipmentRoute.metrics alanlarının toplamıdır (veya yüklemeler için maksimum değeridir).

skippedMandatoryShipmentCount

integer

Atlanan zorunlu gönderim sayısı.

usedVehicleCount

integer

Kullanılan araç sayısı. Not: Bir araç rotası boşsa ve Vehicle.used_if_route_is_empty doğruysa araç ikinci el olarak kabul edilir.

earliestVehicleStartTime

string (Timestamp format)

İkinci el araçlar için en erken başlangıç zamanı, tüm ikinci el araçlar için minimum değer olan ShipmentRoute.vehicle_start_time olarak hesaplanır.

Zaman damgasında RFC 3339 kullanılır. Yani oluşturulan çıkış her zaman Z ile normalleştirilir ve 0, 3, 6 veya 9 kesirli basamak kullanılır. "Z" dışındaki zaman farkları da kabul edilir. Örnekler: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" veya "2014-10-02T15:01:23+05:30".

latestVehicleEndTime

string (Timestamp format)

İkinci el araç için en son bitiş zamanı. ShipmentRoute.vehicle_end_time değerindeki tüm ikinci el araçlar için maksimum değer olarak hesaplanır.

Zaman damgasında RFC 3339 kullanılır. Yani oluşturulan çıkış her zaman Z ile normalleştirilir ve 0, 3, 6 veya 9 kesirli basamak kullanılır. "Z" dışındaki zaman farkları da kabul edilir. Örnekler: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" veya "2014-10-02T15:01:23+05:30".

costs

map (key: string, value: number)

Maliyetle ilgili istek alanlarına göre dökümü alınmış çözüm maliyeti. Anahtarlar, giriş OptimizeToursRequest'e göre proto yollarıdır (ör. "model.shipments.pickups.cost"). Değerler ise ilgili maliyet alanı tarafından oluşturulan ve çözümün tamamında toplanan toplam maliyettir. Diğer bir deyişle, costs["model.shipments.pickups.cost"], çözümdeki tüm teslim alma maliyetlerinin toplamıdır. Modelde tanımlanan tüm maliyetler, 2022/01 itibarıyla yalnızca toplu olarak bildirilen TransitionAttributes ile ilgili maliyetler hariç olmak üzere burada ayrıntılı olarak raporlanır.

totalCost

number

Çözümün toplam maliyeti. Maliyetler haritasındaki tüm değerlerin toplamı.