- JSON gösterimi
- Kargo
- VisitRequest
- LatLng
- Waypoint
- Konum
- TimeWindow
- Araç
- TravelMode
- RouteModifiers
- UnloadingPolicy
- LoadLimit
- Aralık
- LoadCost
- DurationLimit
- DistanceLimit
- BreakRule
- BreakRequest
- FrequencyConstraint
- Amaç
- Tür
- DurationDistanceMatrix
- Satır
- TransitionAttributes
- ShipmentTypeIncompatibility
- IncompatibilityMode
- ShipmentTypeRequirement
- RequirementMode
- PrecedenceRule
Bir kargo modeli, bir dizi araç tarafından gerçekleştirilmesi gereken bir dizi kargo içerir. Bu sırada, toplam maliyet (aşağıdakilerin toplamı) en aza indirilir:
- Araçları yönlendirmenin maliyeti (toplam süre başına maliyet, seyahat süresi başına maliyet ve tüm araçlardaki sabit maliyetin toplamı).
- gerçekleştirilmeyen kargo cezaları.
- Gönderilerin küresel süresinin maliyeti
| JSON gösterimi |
|---|
{ "shipments": [ { object ( |
| Alanlar | |
|---|---|
shipments[] |
Modelde gerçekleştirilmesi gereken gönderimler grubu. |
vehicles[] |
Ziyaret gerçekleştirmek için kullanılabilecek araçlar grubu. |
objectives[] |
Bu model için maliyetlere dönüştüreceğimiz hedef grubu. Boş değilse giriş modeli ücretsiz olmalıdır. Değiştirilmiş isteği almak için lütfen Deneysel: Daha fazla bilgi için https://developers.google.com/maps/tt/route-optimization/experimental/objectives/make-request adresine bakın. |
globalStartTime |
Modelin genel başlangıç ve bitiş zamanı: Bu aralığın dışındaki zamanlar geçerli kabul edilemez. Modelin zaman aralığı bir yıldan kısa olmalıdır. Yani
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: |
globalEndTime |
Ayarlanmamışsa varsayılan olarak 1 Ocak 1971 00:00:00 UTC (yani saniye: 31536000, nanos: 0) kullanılı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: |
globalDurationCostPerHour |
Genel planın "toplam süresi", tüm araçların en erken geçerli başlangıç zamanı ile en geç geçerli bitiş zamanı arasındaki farktır. Kullanıcılar, örneğin işin en erken tamamlanması için optimizasyon yapmaya çalışmak amacıyla bu miktara saatlik bir maliyet atayabilir. Bu maliyet, |
durationDistanceMatrices[] |
Modelde kullanılan süre ve mesafe matrislerini belirtir. Bu alan boşsa Kullanım örnekleri:
|
durationDistanceMatrixSrcTags[] |
Süre ve mesafe matrislerinin kaynaklarını tanımlayan etiketler; Etiketler, |
durationDistanceMatrixDstTags[] |
Süre ve mesafe matrislerinin hedeflerini tanımlayan etiketler; Etiketler, |
transitionAttributes[] |
Modele geçiş özellikleri eklendi. |
shipmentTypeIncompatibilities[] |
Uyumsuz shipment_types (kargo_türleri) kümeleri ( |
shipmentTypeRequirements[] |
|
precedenceRules[] |
Modelde uygulanması gereken öncelik kuralları grubu. ÖNEMLİ: Öncelik kurallarının kullanılması, optimize edilebilecek sorunun boyutunu sınırlar. Çok sayıda gönderim içeren öncelik kurallarının kullanıldığı istekler reddedilebilir. |
maxActiveVehicles |
Maksimum etkin araç sayısını sınırlar. Rotası en az bir gönderi taşıyan araçlar etkin olarak kabul edilir. Bu özellik, araç sayısının sürücü sayısından fazla olduğu ve araç filosunun heterojen olduğu durumlarda rota sayısını sınırlamak için kullanılabilir. Optimizasyon daha sonra kullanılacak en iyi araç alt grubunu seçer. Kesinlikle pozitif olmalıdır. |
Kargo
Tek bir öğenin, teslim alınma noktalarından birinden teslimat noktalarından birine gönderilmesi. Gönderinin gerçekleştirilmiş olarak kabul edilmesi için benzersiz bir aracın teslim alma konumlarından birini ziyaret etmesi (ve yedek kapasitelerini buna göre azaltması), ardından teslimat konumlarından birini ziyaret etmesi (ve bu nedenle yedek kapasitelerini buna göre yeniden artırması) gerekir.
| JSON gösterimi |
|---|
{ "displayName": string, "pickups": [ { object ( |
| Alanlar | |
|---|---|
displayName |
Gönderinin kullanıcı tanımlı görünen adı. En fazla 63 karakter uzunluğunda olabilir ve UTF-8 karakterleri kullanılabilir. |
pickups[] |
Kargoyla ilişkili teslim alma alternatifleri grubu. Belirtilmemişse aracın yalnızca teslimatlara karşılık gelen bir konumu ziyaret etmesi gerekir. |
deliveries[] |
Gönderimle ilişkili bir dizi teslimat alternatifi. Belirtilmemişse aracın yalnızca teslim alma noktalarına karşılık gelen bir konumu ziyaret etmesi gerekir. |
loadDemands |
Kargonun yük talepleri (ör. ağırlık, hacim, palet sayısı vb.) Haritadaki anahtarlar, ilgili yükün türünü açıklayan tanımlayıcılar olmalıdır. İdeal olarak birimler de dahil edilmelidir. Örneğin: "weight_kg", "volume_gallons", "pallet_count" vb. Belirli bir anahtar haritada görünmüyorsa ilgili yük boş olarak kabul edilir. |
allowedVehicleIndices[] |
Bu gönderimi yapabilecek araçlar grubu. Boş bırakılırsa tüm araçlar bu işlemi gerçekleştirebilir. Araçlar, |
costsPerVehicle[] |
Bu gönderinin her araçla teslim edildiğinde oluşan maliyeti belirtir. Belirtilmişse ŞUNLARDAN BİRİNİ içermelidir:
Bu maliyetler, |
costsPerVehicleIndices[] |
|
pickupToDeliveryAbsoluteDetourLimit |
Teslim alma noktasından teslimat noktasına en kısa mesafeye kıyasla maksimum mutlak sapma süresini belirtir. Belirtilmişse negatif olmayan bir değer olmalıdır ve kargoda en az bir teslim alma ve bir teslimat işlemi olmalıdır. Örneğin, t, seçilen teslim alma alternatifinden doğrudan seçilen teslimat alternatifine gitmek için gereken en kısa süre olsun. Ardından Aynı gönderide hem göreceli hem de mutlak sınırlar belirtilmişse olası her teslim alma/teslimat çifti için daha kısıtlayıcı olan sınır kullanılır. 2017/10 itibarıyla, alternatif yollar yalnızca seyahat süreleri araçlara bağlı olmadığında desteklenir. En fazla dokuz kesirli basamak içeren ve " |
pickupToDeliveryTimeLimit |
Bir gönderinin teslim alınmasının başlangıcından teslimatının başlangıcına kadar geçen maksimum süreyi belirtir. Belirtilmişse negatif olmayan bir değer olmalıdır ve kargoda en az bir teslim alma ve bir teslimat işlemi olmalıdır. Bu, teslim alma ve teslimat için hangi alternatiflerin seçildiğine veya aracın hızına bağlı değildir. Bu, maksimum sapma kısıtlamalarıyla birlikte belirtilebilir: Çözüm, her iki spesifikasyona da uyar. En fazla dokuz kesirli basamak içeren ve " |
shipmentType |
Bu gönderinin "türünü" belirten boş olmayan bir dize. Bu özellik, Tek bir ziyaret için belirtilen |
label |
Bu gönderi için bir etiket belirtir. Bu etiket, ilgili |
ignore |
Doğruysa bu gönderimi atlayın ancak Bir gönderinin yoksayılması, modelde
|
penaltyCost |
Gönderim tamamlanmazsa bu ceza, rotaların toplam maliyetine eklenir. Teslim alma ve teslimat alternatiflerinden biri ziyaret edilirse kargo tamamlanmış sayılır. Maliyet, modeldeki diğer tüm maliyetle ilgili alanlarda kullanılan birimle ifade edilebilir ve pozitif olmalıdır. ÖNEMLİ: Bu ceza belirtilmezse sonsuz olarak kabul edilir. Yani gönderim tamamlanmalıdır. |
pickupToDeliveryRelativeDetourLimit |
Teslim alma noktasından teslimat noktasına giden en kısa yola kıyasla maksimum göreceli sapma süresini belirtir. Belirtilmişse negatif olmayan bir değer olmalıdır ve kargoda en az bir teslim alma ve bir teslimat işlemi olmalıdır. Örneğin, t, seçilen teslim alma alternatifinden doğrudan seçilen teslimat alternatifine gitmek için gereken en kısa süre olsun. Ardından Aynı gönderide hem göreceli hem de mutlak sınırlar belirtilmişse olası her teslim alma/teslimat çifti için daha kısıtlayıcı olan sınır kullanılır. 2017/10 itibarıyla, alternatif yollar yalnızca seyahat süreleri araçlara bağlı olmadığında desteklenir. |
VisitRequest
Araçla yapılabilecek ziyaret isteği: Coğrafi konumu (veya iki, aşağıya bakın), zaman aralıklarıyla gösterilen açılış ve kapanış saatleri ve hizmet süresi (araç, malları almak veya bırakmak için geldiğinde harcanan süre) vardır.
| JSON gösterimi |
|---|
{ "arrivalLocation": { object ( |
| Alanlar | |
|---|---|
arrivalLocation |
Bu |
arrivalWaypoint |
Bu |
departureLocation |
Bu |
departureWaypoint |
Aracın bu |
tags[] |
Ziyaret isteğine eklenen etiketleri belirtir. Boş veya yinelenen dizelere izin verilmez. |
timeWindows[] |
Ziyaret sırasında varış zamanını kısıtlayan zaman aralıkları. Bir aracın, varış zamanı aralığının dışında (ör. varış zamanı + süre bir zaman aralığında olmak zorunda değildir) hareket edebileceğini unutmayın. Araç
Zaman aralıkları ayrı olmalıdır. Yani hiçbir zaman aralığı başka bir zaman aralığıyla çakışmamalı veya ona bitişik olmamalıdır ve artan sırada olmalıdır.
|
duration |
Ziyaret süresi (yani aracın varış ve ayrılış arasında geçirdiği süre) (olası bekleme süresine eklenir; bkz. En fazla dokuz kesirli basamak içeren ve " |
cost |
Bu ziyaret isteğinin bir araç rotasında karşılanmasının maliyeti. Bu özellik, bir gönderinin her alternatif teslim alma veya teslimat işlemi için farklı maliyetler ödemek üzere kullanılabilir. Bu maliyet, |
loadDemands |
Bu ziyaret isteğinin yük talepleri. Bu, |
visitTypes[] |
Ziyaret türlerini belirtir. Bu, bir aracın ziyareti tamamlaması için gereken ek süreyi ayırmak amacıyla kullanılabilir ( Bir tür yalnızca bir kez görünebilir. |
label |
Bu |
avoidUTurns |
Bu konumdaki sürüş rotalarında U dönüşlerinin önlenip önlenmeyeceğini belirtir. U dönüşü engelleme özelliği, en iyi sonuçları elde etmeye çalışır ancak tam engelleme garanti edilmez. Bu deneysel bir özelliktir ve davranış değişikliğe tabidir. Deneysel: Daha fazla bilgi için https://developers.google.com/maps/tt/route-optimization/experimental/u-turn-avoidance/make-request adresini ziyaret edin. |
LatLng
Bir enlem/boylam çiftini temsil eden nesne. Bu, enlem derecelerini ve boylam derecelerini temsil etmek için çift sayı olarak ifade edilir. Aksi belirtilmediği sürece bu nesne WGS84 standardına uygun olmalıdır. Değerler normalleştirilmiş aralıklar içinde olmalıdır.
| JSON gösterimi |
|---|
{ "latitude": number, "longitude": number } |
| Alanlar | |
|---|---|
latitude |
Enlem (derece cinsinden). [-90.0, +90.0] aralığında olmalıdır. |
longitude |
Boylam (derece cinsinden). [-180.0, +180.0] aralığında olmalıdır. |
Ara nokta
Bir ara noktayı kapsar. Ara noktalar, VisitRequest'lerin varış ve ayrılış konumlarını, araçların ise başlangıç ve bitiş konumlarını işaretler.
| JSON gösterimi |
|---|
{ "sideOfRoad": boolean, "vehicleStopover": boolean, // Union field |
| Alanlar | |
|---|---|
sideOfRoad |
İsteğe bağlıdır. Bu yol noktasının konumunun, aracın yolun belirli bir tarafında durmasını tercih etmek için kullanıldığını gösterir. Bu değeri ayarladığınızda rota, konumdan geçecek şekilde belirlenir. Böylece araç, yolun merkezinden konuma doğru olan tarafında durabilir. Bu seçenek "YÜRÜME" seyahat modunda kullanılamaz. |
vehicleStopover |
Bu seçenek, yol noktasının araçların durması için olduğunu belirtir. Amaç, yolcuları almak veya bırakmaktır. Bu seçenek yalnızca "ARABA" seyahat modunda ve "locationType" değeri "location" olduğunda çalışır. Deneysel: Bu alanın davranışı veya varlığı gelecekte değişebilir. |
location_type birleşik alanı. Bir konumu temsil etmenin farklı yolları. location_type aşağıdakilerden yalnızca biri olabilir: |
|
location |
İsteğe bağlı bir başlık da dahil olmak üzere coğrafi koordinatlar kullanılarak belirtilen bir nokta. |
placeId |
Ara nokta ile ilişkili ÖY yer kimliği. Bir VisitRequest'in varış veya ayrılış konumunu belirtmek için yer kimliği kullanırken, yere gitmek için navigasyonun LatLng konumunu belirlemeye yetecek kadar spesifik bir yer kimliği kullanın. Örneğin, bir binayı temsil eden bir yer kimliği uygundur ancak bir yolu temsil eden bir yer kimliği önerilmez. |
Konum
Bir konumu (coğrafi nokta ve isteğe bağlı başlık) kapsar.
| JSON gösterimi |
|---|
{
"latLng": {
object ( |
| Alanlar | |
|---|---|
latLng |
Ara noktanın coğrafi koordinatları. |
heading |
Trafiğin akış yönüyle ilişkili pusula yönü. Bu değer, teslim alma ve bırakma için kullanılacak yol tarafını belirtmek üzere kullanılır. Yön değerleri 0 ile 360 arasında olabilir. 0 değeri tam kuzey yönünü, 90 değeri tam doğu yönünü belirtir. |
TimeWindow
Zaman aralıkları, bir etkinliğin zamanını (ör. ziyaret sırasında varış zamanı veya bir aracın başlangıç ve bitiş zamanı) kısıtlar.
Sert zaman aralığı sınırları, startTime ve endTime, etkinliğin en erken ve en geç zamanını zorunlu kılar. Bu durumda startTime <= event_time <=
endTime. Esnek zaman aralığının alt sınırı olan softStartTime, etkinliğin softStartTime tarihinde veya sonrasında gerçekleşmesi için bir tercih olduğunu ifade eder. Bu tercih, etkinliğin softStartTime'dan ne kadar önce gerçekleştiğiyle orantılı bir maliyetle sonuçlanır. Esnek zaman aralığının üst sınırı olan softEndTime, etkinliğin softEndTime tarihinde veya öncesinde gerçekleşmesi için bir tercih ifade eder. Bu tercih, etkinliğin softEndTime tarihinden ne kadar sonra gerçekleştiğiyle orantılı bir maliyetle sonuçlanır. startTime, endTime, softStartTime ve softEndTime, genel zaman sınırları içinde olmalı (ShipmentModel.global_start_time ve ShipmentModel.global_end_time) ve şunlara uymalıdır:
0 <= `startTime` <= `endTime` and
0 <= `startTime` <= `softStartTime` and
0 <= `softEndTime` <= `endTime`.
| JSON gösterimi |
|---|
{ "startTime": string, "endTime": string, "softStartTime": string, "softEndTime": string, "costPerHourBeforeSoftStartTime": number, "costPerHourAfterSoftEndTime": number } |
| Alanlar | |
|---|---|
startTime |
Kesin zaman aralığının başlangıç zamanı. Belirtilmezse 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: |
endTime |
Kesin zaman aralığının bitiş zamanı. Belirtilmezse 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: |
softStartTime |
Zaman aralığının kontrollü başlatma zamanı. 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: |
softEndTime |
Zaman aralığının bitiş zamanı. 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: |
costPerHourBeforeSoftStartTime |
Etkinlik softStartTime'dan önce gerçekleşirse modele eklenen saatlik maliyet. Şu şekilde hesaplanır: Bu maliyet pozitif olmalıdır ve alan yalnızca softStartTime ayarlanmışsa belirlenebilir. |
costPerHourAfterSoftEndTime |
Etkinlik Bu maliyet pozitif olmalıdır ve alan yalnızca |
Araç
Kargo sorununda bir aracı modelliyor. Kargo sorununu çözdüğünüzde bu araç için startLocation ile endLocation arasında bir rota oluşturulur. Rota, ziyaretlerin sırasıdır (ShipmentRoute).
| JSON gösterimi |
|---|
{ "displayName": string, "travelMode": enum ( |
| Alanlar | |
|---|---|
displayName |
Aracın kullanıcı tanımlı görünen adı. En fazla 63 karakter uzunluğunda olabilir ve UTF-8 karakterleri kullanılabilir. |
travelMode |
Aracın kullanabileceği yolları ve hızını etkileyen ulaşım şekli. Ayrıca |
routeModifiers |
Belirli bir araç için rotaların hesaplanma şeklini etkileyen bir dizi koşul. |
startLocation |
Aracın herhangi bir gönderi almadan önce başladığı coğrafi konum. Belirtilmezse araç ilk teslim alma noktasından başlar. Kargo modelinde süre ve mesafe matrisleri varsa |
startWaypoint |
Aracın herhangi bir gönderi almadan önce başladığı coğrafi konumu temsil eden yol noktası. Ne |
endLocation |
Aracın son |
endWaypoint |
Aracın son |
startTags[] |
Aracın rotasının başlangıcına eklenen etiketleri belirtir. Boş veya yinelenen dizelere izin verilmez. |
endTags[] |
Aracın rotasının sonuna eklenen etiketleri belirtir. Boş veya yinelenen dizelere izin verilmez. |
startTimeWindows[] |
Aracın başlangıç konumundan ayrılabileceği zaman aralıkları. Bunlar, genel zaman sınırları içinde olmalıdır ( Aynı tekrarlanan alana ait zaman aralıkları ayrık olmalıdır. Yani hiçbir zaman aralığı başka bir zaman aralığıyla çakışamaz veya ona bitişik olamaz ve kronolojik sırada olmalıdır.
|
endTimeWindows[] |
Aracın son konumuna varabileceği zaman aralıkları. Bunlar, genel zaman sınırları içinde olmalıdır ( Aynı tekrarlanan alana ait zaman aralıkları ayrık olmalıdır. Yani hiçbir zaman aralığı başka bir zaman aralığıyla çakışamaz veya ona bitişik olamaz ve kronolojik sırada olmalıdır.
|
unloadingPolicy |
Araçta boşaltma politikası uygulanır. |
loadLimits |
Aracın kapasiteleri (örneğin, ağırlık, hacim, palet sayısı). Haritadaki anahtarlar, |
costPerHour |
Araç maliyetleri: Tüm maliyetler toplanır ve Araç rotasının saatlik maliyeti. Bu maliyet, rotanın toplam süresine uygulanır ve seyahat süresi, bekleme süresi ve ziyaret süresini içerir. Yalnızca |
costPerTraveledHour |
Araç rotasının gidilen saat başına maliyeti. Bu maliyet yalnızca rota tarafından alınan seyahat süresi için geçerlidir (yani |
costPerKilometer |
Araç rotasının kilometre başına maliyeti. Bu maliyet, |
fixedCost |
Bu araç bir gönderiyi işlemek için kullanılıyorsa sabit maliyet uygulanır. |
usedIfRouteIsEmpty |
Bu alan yalnızca rotası herhangi bir gönderiye hizmet etmeyen araçlar için geçerlidir. Bu durumda aracın kullanılmış olarak kabul edilip edilmeyeceğini belirtir. Doğruysa araç, herhangi bir gönderiye hizmet etmese bile başlangıç konumundan bitiş konumuna gider ve başlangıçtan bitişe yolculuktan kaynaklanan süre ve mesafe maliyetleri dikkate alınır. Aksi takdirde, başlangıç konumundan bitiş konumuna gitmez ve bu araç için |
routeDurationLimit |
Sınır, aracın rotasının toplam süresine uygulanır. Belirli bir |
travelDurationLimit |
Aracın rotasının seyahat süresine uygulanan sınır. Belirli bir |
routeDistanceLimit |
Sınır, aracın rotasının toplam mesafesine uygulanır. Belirli bir |
extraVisitDurationForVisitType |
visitTypes dizelerinden süreye kadar olan bir haritayı belirtir. Süre, belirtilen Ziyaret isteğinde birden fazla tür varsa haritaya her tür için bir süre eklenir. |
breakRule |
Bu araçta uygulanacak mola programını açıklar. Boş bırakılırsa bu araç için mola planlanmaz. |
label |
Bu araç için bir etiket belirtir. Bu etiket, yanıtta ilgili |
ignore |
Doğruysa
|
travelDurationMultiple |
Bu aracın seyahat sürelerini artırmak veya azaltmak için kullanılabilecek bir çarpma faktörünü belirtir. Örneğin, bu değeri 2,0 olarak ayarladığınızda bu aracın daha yavaş olduğu ve standart araçlara kıyasla iki kat daha uzun seyahat sürelerine sahip olduğu anlaşılır. Bu kat, ziyaret sürelerini etkilemez. UYARI: Bu kat uygulandıktan sonra ancak herhangi bir sayısal işlem gerçekleştirilmeden önce seyahat süreleri en yakın saniyeye yuvarlanır. Bu nedenle, küçük bir kat, hassasiyet kaybına neden olabilir. Ayrıca |
TravelMode
Araçların kullanabileceği ulaşım şekilleri.
Bunlar, Google Haritalar Platformu Rotalar API'si seyahat modlarının bir alt kümesi olmalıdır. Bkz: https://developers.google.com/maps/documentation/routes/reference/rest/v2/RouteTravelMode
Not: WALKING rotaları beta sürümündedir ve bazen net kaldırımlar veya yaya yolları içermeyebilir. Uygulamanızda gösterdiğiniz tüm yürüme rotaları için bu uyarıyı kullanıcıya göstermeniz gerekir.
| Sıralamalar | |
|---|---|
TRAVEL_MODE_UNSPECIFIED |
Belirtilmemiş ulaşım şekli, DRIVING ile eşdeğerdir. |
DRIVING |
Yol tariflerine karşılık gelen ulaşım şekli (araba, ...). |
WALKING |
Yürüyüş rotalarına karşılık gelen ulaşım şekli. |
RouteModifiers
Araç rotaları hesaplanırken karşılanması gereken bir dizi isteğe bağlı koşulu kapsar. Bu, Google Haritalar Platformu Rotalar Tercih Edilen API'sindeki RouteModifiers ile benzerdir. Bkz: https://developers.google.com/maps/documentation/routes/reference/rest/v2/RouteModifiers.
| JSON gösterimi |
|---|
{ "avoidTolls": boolean, "avoidHighways": boolean, "avoidFerries": boolean, "avoidIndoor": boolean } |
| Alanlar | |
|---|---|
avoidTolls |
Makul olduğu durumlarda ücretli yollardan kaçınılıp kaçınılmayacağını belirtir. Ücretli yolların olmadığı rotalar tercih edilir. Yalnızca motorlu ulaşım modları için geçerlidir. |
avoidHighways |
Makul olan durumlarda otoyolların kullanılmaması gerektiğini belirtir. Otoyol içermeyen rotalar tercih edilir. Yalnızca motorlu ulaşım modları için geçerlidir. |
avoidFerries |
Makul olduğu durumlarda feribotların kullanılmamasını belirtir. Feribotla seyahat içermeyen rotalara öncelik verilir. Yalnızca motorlu ulaşım modları için geçerlidir. |
avoidIndoor |
İsteğe bağlıdır. Mümkün olduğunda kapalı alanlarda gezinmekten kaçınılıp kaçınılmayacağını belirtir. Kapalı alan navigasyonu içermeyen rotalara öncelik verilir. Yalnızca |
UnloadingPolicy
Araçların nasıl boşaltılabileceğiyle ilgili politika. Yalnızca hem teslim alma hem de teslimat içeren gönderiler için geçerlidir.
Diğer gönderiler, unloadingPolicy'dan bağımsız olarak rota üzerinde herhangi bir yerde ücretsiz olarak gerçekleşebilir.
| Sıralamalar | |
|---|---|
UNLOADING_POLICY_UNSPECIFIED |
Belirtilmemiş boşaltma politikası; teslimatlar yalnızca ilgili teslim alma işlemlerinden sonra yapılmalıdır. |
LAST_IN_FIRST_OUT |
Teslimatlar, teslim alma işlemlerinin tersi sırayla yapılmalıdır. |
FIRST_IN_FIRST_OUT |
Teslimatlar, teslim alma işlemleriyle aynı sırada yapılmalıdır. |
LoadLimit
Bir araç için geçerli olan yük sınırını tanımlar (ör. "Bu kamyon yalnızca 3.500 kg'a kadar yük taşıyabilir"). Şu sayfaya göz atın: loadLimits.
| JSON gösterimi |
|---|
{ "softMaxLoad": string, "costPerUnitAboveSoftMax": number, "startLoadInterval": { object ( |
| Alanlar | |
|---|---|
softMaxLoad |
Yükün sanal sınırı. Şu sayfaya göz atın: |
costPerUnitAboveSoftMax |
Yük, bu aracın rotası boyunca |
startLoadInterval |
Rotanın başlangıcında aracın kabul edilebilir yük aralığı. |
endLoadInterval |
Aracın rota sonunda kabul edilebilir yükleme aralığı. |
maxLoad |
Kabul edilebilir maksimum yük miktarı. |
costPerKilometer |
Bu araç için bir birim yükün bir kilometre taşınmasının maliyeti. Bu, yakıt tüketimi için bir vekil olarak kullanılabilir: Yük bir ağırlıksa (Newton cinsinden), yük*kilometre bir enerji boyutuna sahiptir. Deneysel: Daha fazla bilgi için https://developers.google.com/maps/tt/route-optimization/experimental/load-cost/make-request adresini ziyaret edin. |
costPerTraveledHour |
Bu araçla bir saat boyunca bir yük birimiyle seyahat etmenin maliyeti. Deneysel: Daha fazla bilgi için https://developers.google.com/maps/tt/route-optimization/experimental/load-cost/make-request adresini ziyaret edin. |
Aralık
Kabul edilebilir yükleme miktarlarının aralığı.
| JSON gösterimi |
|---|
{ "min": string, "max": string } |
| Alanlar | |
|---|---|
min |
Kabul edilebilir minimum yük ≥ 0 olmalıdır. İkisi de belirtilmişse |
max |
Kabul edilebilir maksimum yük. ≥ 0 olmalıdır. Belirtilmemesi durumunda, maksimum yük bu mesajla sınırlanmaz. İkisi de belirtilmişse |
LoadCost
Transition sırasında bir birim yükü taşımanın maliyeti. Belirli bir yük için maliyet iki bölümün toplamıdır:
- min(yük,
loadThreshold) *costPerUnitBelowThreshold - maks(0, yük -
loadThreshold) *costPerUnitAboveThreshold
Bu maliyetle çözümler, yüksek talepleri önce karşılamayı veya benzer şekilde yüksek talepleri en son karşılamayı tercih eder. Örneğin, bir araçta
load_limit {
key: "weight"
value {
costPerKilometer {
loadThreshold: 15
costPerUnitBelowThreshold: 2.0
costPerUnitAboveThreshold: 10.0
}
}
}
ve rotası, geçişlerle birlikte başlangıç, teslim alma, teslim alma, teslimat, teslimat, bitiş şeklindedir:
transition { vehicle_load['weight'] { amount: 0 }
travelDistanceMeters: 1000.0 }
transition { vehicle_load['weight'] { amount: 10 }
travelDistanceMeters: 1000.0 }
transition { vehicle_load['weight'] { amount: 20 }
travelDistanceMeters: 1000.0 }
transition { vehicle_load['weight'] { amount: 10 }
travelDistanceMeters: 1000.0 }
transition { vehicle_load['weight'] { amount: 0 }
travelDistanceMeters: 1000.0 }
bu LoadCost tarafından yapılan maliyet (cost_below * load_below * kilometers + cost_above * load_above * kms) olur.
- geçiş 0: 0,0
- 1. geçiş: 2,0 * 10 * 1,0 + 10,0 * 0 * 1,0 = 20,0
- geçiş 2: 2,0 * 15 * 1,0 + 10,0 * (20 - 15) * 1,0 = 80,0
- 3. geçiş: 2,0 * 10 * 1,0 + 10,0 * 0 * 1,0 = 20,0
- geçiş 4: 0,0
Bu nedenle, rota üzerindeki LoadCost değeri 120,0'dır.
Ancak rota, geçişlerle birlikte start,pickup,delivery,pickup,delivery,end ise:
transition { vehicle_load['weight'] { amount: 0 }
travelDistanceMeters: 1000.0 }
transition { vehicle_load['weight'] { amount: 10 }
travelDistanceMeters: 1000.0 }
transition { vehicle_load['weight'] { amount: 0 }
travelDistanceMeters: 1000.0 }
transition { vehicle_load['weight'] { amount: 10 }
travelDistanceMeters: 1000.0 }
transition { vehicle_load['weight'] { amount: 0 }
travelDistanceMeters: 1000.0 }
bu LoadCost tarafından karşılanan maliyet
- geçiş 0: 0,0
- 1. geçiş: 2,0 * 10 * 1,0 + 10,0 * 0 * 1,0 = 20,0
- geçiş 2: 0,0
- 3. geçiş: 2,0 * 10 * 1,0 + 10,0 * 0 * 1,0 = 20,0
- geçiş 4: 0,0
Burada rotadaki LoadCost değeri 40,0'dır.
LoadCost, yoğun geçişli çözümleri daha pahalı hale getirir.
Deneysel: Daha fazla bilgi için https://developers.google.com/maps/tt/route-optimization/experimental/load-cost/make-request adresini ziyaret edin.
| JSON gösterimi |
|---|
{ "loadThreshold": string, "costPerUnitBelowThreshold": number, "costPerUnitAboveThreshold": number } |
| Alanlar | |
|---|---|
loadThreshold |
Yük biriminin taşınma maliyetinin eşiğin altındaki birim başına maliyetten eşiğin üzerindeki birim başına maliyete değiştiği yük miktarı. 0 veya daha büyük olmalıdır. |
costPerUnitBelowThreshold |
Yük biriminin taşınmasının maliyeti (0 ile eşik arasındaki her birim için). Sonlu bir değer olmalı ve 0'dan büyük veya 0'a eşit olmalıdır. |
costPerUnitAboveThreshold |
Eşiğin üzerindeki her birim için yük birimini taşıma maliyeti. Eşik = 0 olan özel durumda bu, birim başına sabit bir maliyettir. Sonlu bir değer olmalı ve 0'dan büyük veya 0'a eşit olmalıdır. |
DurationLimit
Bir aracın rotasının maksimum süresini tanımlayan sınır. Sert veya yumuşak olabilir.
Esnek sınır alanı tanımlandığında hem esnek maksimum eşik hem de ilişkili maliyet birlikte tanımlanmalıdır.
| JSON gösterimi |
|---|
{ "maxDuration": string, "softMaxDuration": string, "quadraticSoftMaxDuration": string, "costPerHourAfterSoftMax": number, "costPerSquareHourAfterQuadraticSoftMax": number } |
| Alanlar | |
|---|---|
maxDuration |
Süreyi en fazla maxDuration ile sınırlayan kesin bir sınır. En fazla dokuz kesirli basamak içeren ve " |
softMaxDuration |
Maksimum süre sınırını zorunlu kılmayan ancak ihlal edildiğinde rotanın maliyete tabi olmasına neden olan esnek bir sınırdır. Bu maliyet, modelde tanımlanan diğer maliyetlere aynı birimle eklenir. Tanımlanırsa En fazla dokuz kesirli basamak içeren ve " |
quadraticSoftMaxDuration |
Maksimum süre sınırını zorunlu kılmayan ancak ihlal edildiğinde rotanın süreye göre ikinci dereceden bir maliyete neden olduğu esnek bir sınır. Bu maliyet, modelde tanımlanan diğer maliyetlere aynı birimle eklenir. Tanımlanırsa
En fazla dokuz kesirli basamak içeren ve " |
costPerHourAfterSoftMax |
Maliyet negatif olmamalıdır. |
costPerSquareHourAfterQuadraticSoftMax |
Süre eşiğin altındaysa ek maliyet 0 olur. Aksi takdirde maliyet, süreye bağlı olarak aşağıdaki şekilde belirlenir: Maliyet negatif olmamalıdır. |
DistanceLimit
Gidilebilecek maksimum mesafeyi tanımlayan bir sınır. Sert veya yumuşak olabilir.
Esnek sınır tanımlanırsa hem softMaxMeters hem de costPerKilometerAboveSoftMax tanımlanmalı ve negatif olmamalıdır.
| JSON gösterimi |
|---|
{ "maxMeters": string, "softMaxMeters": string, "costPerKilometerBelowSoftMax": number, "costPerKilometerAboveSoftMax": number } |
| Alanlar | |
|---|---|
maxMeters |
Mesafeyi en fazla maxMeters ile sınırlayan kesin bir sınır. Sınır negatif olmamalıdır. |
softMaxMeters |
Maksimum mesafe sınırını zorunlu kılmayan ancak ihlal edildiğinde maliyete neden olan ve modelde tanımlanan diğer maliyetlere aynı birimle eklenen bir yumuşak sınırdır. Tanımlanırsa softMaxMeters, maxMeters değerinden küçük ve negatif olmayan bir değer olmalıdır. |
costPerKilometerBelowSoftMax |
Kilometre başına yapılan maliyet, Bu maliyet, |
costPerKilometerAboveSoftMax |
Mesafe Maliyet negatif olmamalıdır. |
BreakRule
Bir araç için zaman araları oluşturma kuralları (ör. öğle yemeği araları). Mola, aracın mevcut konumunda boşta kaldığı ve herhangi bir ziyaret gerçekleştiremediği kesintisiz bir zaman aralığıdır. Aşağıdaki durumlarda ara verilebilir:
- İki ziyaret arasındaki seyahat sırasında (ziyaretten hemen önce veya hemen sonraki zamanı içerir ancak ziyaretin ortasındaki zamanı içermez). Bu durumda, ziyaretler arasındaki ilgili geçiş süresi uzatılır.
- veya araç çalıştırılmadan önce (araç, mola sırasında çalışmayabilir) yapılabilir. Bu durumda, araç çalıştırma süresi etkilenmez.
- veya araç bitişinden sonra (araç bitiş zamanı için de aynı durum geçerlidir).
| JSON gösterimi |
|---|
{ "breakRequests": [ { object ( |
| Alanlar | |
|---|---|
breakRequests[] |
Molaların sırası. |
frequencyConstraints[] |
Çeşitli |
BreakRequest
Her araç için geçerli olan mola sırası (ör. sayıları ve sıraları) önceden bilinmelidir. Tekrarlanan BreakRequest simgeleri, gerçekleşmeleri gereken sırayla bu adım sırasını tanımlar. Zaman aralıkları (earliestStartTime / latestStartTime) çakışabilir ancak siparişle uyumlu olmaları gerekir (bu kontrol edilir).
| JSON gösterimi |
|---|
{ "earliestStartTime": string, "latestStartTime": string, "minDuration": string } |
| Alanlar | |
|---|---|
earliestStartTime |
Zorunlu. Aralığın başlangıcı için alt sınır (dahil). 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: |
latestStartTime |
Zorunlu. Aranın başlangıç zamanı için üst sınır (dahil). 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: |
minDuration |
Zorunlu. Aranın minimum süresi. Pozitif olmalıdır. En fazla dokuz kesirli basamak içeren ve " |
FrequencyConstraint
"Her 12 saatte en az 1 saat ara verilmelidir" gibi minimum ara sıklığı zorunlu kılınarak yukarıda belirtilen araların sıklığı ve süresi daha da sınırlandırılabilir. Bunun "12 saatlik herhangi bir kayan zaman aralığında en az bir saatlik en az bir mola olmalıdır" şeklinde yorumlanabileceğini varsayarsak bu örnek FrequencyConstraint şeklinde çevrilir:
{
minBreakDuration { seconds: 3600 } # 1 hour.
maxInterBreakDuration { seconds: 39600 } # 11 hours (12 - 1 = 11).
}
Çözümdeki araların zamanlaması ve süresi, BreakRequest içinde belirtilen zaman aralıkları ve minimum sürelerin yanı sıra bu tür tüm kısıtlamalara uygun olacaktır.
FrequencyConstraint, uygulamada ardışık olmayan aralar için geçerli olabilir. Örneğin, aşağıdaki program "12 saatte bir 1 saat" örneğine uygundur:
04:00 vehicle start
.. performing travel and visits ..
09:00 1 hour break
10:00 end of the break
.. performing travel and visits ..
12:00 20-min lunch break
12:20 end of the break
.. performing travel and visits ..
21:00 1 hour break
22:00 end of the break
.. performing travel and visits ..
23:59 vehicle end
| JSON gösterimi |
|---|
{ "minBreakDuration": string, "maxInterBreakDuration": string } |
| Alanlar | |
|---|---|
minBreakDuration |
Zorunlu. Bu kısıtlama için minimum mola süresi. Negatif olmayan. En fazla dokuz kesirli basamak içeren ve " |
maxInterBreakDuration |
Zorunlu. Rotadaki, En fazla dokuz kesirli basamak içeren ve " |
Hedef
Hedefler, maliyet modelinin yerini tamamen aldığından önceden var olan maliyetlerle uyumlu değildir. Her hedef; örneğin araçlar, gönderiler veya geçiş özellikleri için önceden tanımlanmış bir dizi maliyetle eşlenir.
Deneysel: Daha fazla bilgi için https://developers.google.com/maps/tt/route-optimization/experimental/objectives/make-request adresine bakın.
| JSON gösterimi |
|---|
{
"type": enum ( |
| Alanlar | |
|---|---|
type |
Hedefin türü. |
weight |
Bu hedefin diğerlerine kıyasla ne kadar önemli olduğu. Bu, negatif olmayan herhangi bir sayı olabilir. Ağırlıkların toplamı 1 olmak zorunda değildir. Ağırlıklar varsayılan olarak 1,0'dır. |
Tür
Bir dizi maliyetle eşlenecek hedef türü.
| Sıralamalar | |
|---|---|
DEFAULT |
Makul bir çözüm sunmak için varsayılan bir maliyet kümesi kullanılır. Not: Bu hedef tek başına kullanılabilir ancak halihazırda mevcut değilse her zaman ağırlık 1.0 ile temel olarak kullanıcının belirttiği hedeflere eklenir. |
MIN_DISTANCE |
"MIN" hedefleri. Katedilen toplam mesafeyi en aza indirin. |
MIN_WORKING_TIME |
Tüm araçlar için toplam çalışma süresini en aza indirin. |
MIN_TRAVEL_TIME |
Yukarıdakiyle aynıdır ancak yalnızca seyahat süresine odaklanır. |
MIN_NUM_VEHICLES |
Kullanılan araç sayısını en aza indirin. |
DurationDistanceMatrix
Ziyaret ve araç başlangıç konumlarından ziyaret ve araç bitiş konumlarına kadar olan süre ve mesafe matrisini belirtir.
| JSON gösterimi |
|---|
{
"rows": [
{
object ( |
| Alanlar | |
|---|---|
rows[] |
Süre ve mesafe matrisinin satırlarını belirtir. |
vehicleStartTag |
Bu süre ve mesafe matrisinin hangi araçlar için geçerli olduğunu tanımlayan etiket. Boş bırakılırsa tüm araçlar için geçerli olur ve yalnızca tek bir matris olabilir. Her araç başlangıcı tam olarak bir matrisle eşleşmelidir. Yani Tüm matrisler farklı bir |
Satır
Süre ve mesafe matrisinin bir satırını belirtir.
| JSON gösterimi |
|---|
{ "durations": [ string ], "meters": [ number ] } |
| Alanlar | |
|---|---|
durations[] |
Belirli bir satırın süre değerleri. En fazla dokuz kesirli basamak içeren ve " |
meters[] |
Belirli bir satır için mesafe değerleri. Modelde mesafelerle ilgili maliyet veya kısıtlama yoksa bu alan boş bırakılabilir. Aksi takdirde, |
TransitionAttributes
Bir rotadaki iki ardışık ziyaret arasındaki geçişlerin özelliklerini belirtir. Aynı geçiş için birden fazla TransitionAttributes geçerli olabilir. Bu durumda, tüm ek maliyetler toplanır ve en katı kısıtlama veya sınır uygulanır (doğal "VE" semantiği izlenerek).
| JSON gösterimi |
|---|
{
"srcTag": string,
"excludedSrcTag": string,
"dstTag": string,
"excludedDstTag": string,
"cost": number,
"costPerKilometer": number,
"distanceLimit": {
object ( |
| Alanlar | |
|---|---|
srcTag |
Bu özelliklerin geçerli olduğu (src->dst) geçişler kümesini tanımlayan etiketler. Bir kaynak ziyareti veya araç başlatma, |
excludedSrcTag |
Şu sayfaya göz atın: |
dstTag |
Bir hedef ziyareti veya araç sonu, |
excludedDstTag |
Şu sayfaya göz atın: |
cost |
Bu geçişi gerçekleştirmenin maliyetini belirtir. Bu değer, modeldeki diğer tüm maliyetlerle aynı birimdedir ve negatif olmamalıdır. Diğer tüm mevcut maliyetlere ek olarak uygulanır. |
costPerKilometer |
Bu geçiş gerçekleştirilirken gidilen mesafeye uygulanan kilometre başına maliyeti belirtir. Araçlarda belirtilen |
distanceLimit |
Bu geçiş yapılırken kat edilen mesafeyle ilgili bir sınır belirtir. Haziran 2021 itibarıyla yalnızca esnek sınırlar desteklenmektedir. |
delay |
Bu geçiş gerçekleştirilirken oluşan gecikmeyi belirtir. Bu gecikme her zaman kaynak ziyareti tamamlandıktan sonra ve hedef ziyareti başlatmadan önce gerçekleşir. En fazla dokuz kesirli basamak içeren ve " |
ShipmentTypeIncompatibility
Kargolar arasındaki uyumsuzlukları kargo türüne göre belirtir. Aynı rotadaki uyumsuz gönderilerin görünümü, uyumsuzluk moduna göre kısıtlanır.
| JSON gösterimi |
|---|
{
"types": [
string
],
"incompatibilityMode": enum ( |
| Alanlar | |
|---|---|
types[] |
Uyumsuz türlerin listesi. Listelenenler arasında farklı |
incompatibilityMode |
Uyumsuzluğa uygulanan mod. |
IncompatibilityMode
Uyumsuz gönderilerin aynı rotada görünümünün nasıl kısıtlanacağını tanımlayan modlar.
| Sıralamalar | |
|---|---|
INCOMPATIBILITY_MODE_UNSPECIFIED |
Belirtilmemiş uyumluluk modu. Bu değer hiçbir zaman kullanılmamalıdır. |
NOT_PERFORMED_BY_SAME_VEHICLE |
Bu modda, uyumsuz türlere sahip iki gönderi asla aynı aracı paylaşamaz. |
NOT_IN_SAME_VEHICLE_SIMULTANEOUSLY |
Bu modda, uyumsuz türlere sahip iki gönderi aynı anda aynı araçta bulunamaz:
|
ShipmentTypeRequirement
Kargolar arasındaki koşulları, kargo türlerine göre belirtir. Koşulun ayrıntıları, koşul modu tarafından tanımlanır.
| JSON gösterimi |
|---|
{
"requiredShipmentTypeAlternatives": [
string
],
"dependentShipmentTypes": [
string
],
"requirementMode": enum ( |
| Alanlar | |
|---|---|
requiredShipmentTypeAlternatives[] |
|
dependentShipmentTypes[] |
NOT: Bir |
requirementMode |
Koşula uygulanan mod. |
RequirementMode
Bir rotadaki bağımlı gönderilerin görünümünü tanımlayan modlar.
| Sıralamalar | |
|---|---|
REQUIREMENT_MODE_UNSPECIFIED |
Belirtilmemiş koşul modu. Bu değer hiçbir zaman kullanılmamalıdır. |
PERFORMED_BY_SAME_VEHICLE |
Bu modda, tüm "bağımlı" gönderiler, "gerekli" gönderilerinden en az biriyle aynı aracı paylaşmalıdır. |
IN_SAME_VEHICLE_AT_PICKUP_TIME |
Bu nedenle, "bağımlı" bir kargo teslim alma işlemi için aşağıdakilerden biri gerekir:
|
IN_SAME_VEHICLE_AT_DELIVERY_TIME |
Öncekiyle aynıdır. Ancak "bağımlı" gönderilerin, teslimatları sırasında araçlarında "gerekli" bir gönderi bulunması gerekir. |
PrecedenceRule
İki etkinlik arasındaki öncelik kuralı (her etkinlik, bir gönderinin teslim alınması veya teslim edilmesidir): "ikinci" etkinlik, "birinci" etkinlik başladıktan en az offsetDuration sonra başlamalıdır.
Aynı (veya ilgili) etkinliklere birden fazla öncelik verilebilir. Örneğin: "B'nin teslim alınması, A'nın teslim edilmesinden sonra gerçekleşir" ve "C'nin teslim alınması, B'nin teslim alınmasından sonra gerçekleşir".
Ayrıca, öncelikler yalnızca her iki gönderim de yapıldığında geçerli olur, aksi takdirde yoksayılır.
| JSON gösterimi |
|---|
{ "firstIsDelivery": boolean, "secondIsDelivery": boolean, "offsetDuration": string, "firstIndex": integer, "secondIndex": integer } |
| Alanlar | |
|---|---|
firstIsDelivery |
"İlk" etkinliğin bir teslimat olup olmadığını gösterir. |
secondIsDelivery |
"İkinci" etkinliğin bir teslim olup olmadığını gösterir. |
offsetDuration |
"Birinci" ve "ikinci" etkinlik arasındaki fark. Negatif olabilir. En fazla dokuz kesirli basamak içeren ve " |
firstIndex |
"İlk" etkinliğin kargo dizini. Bu alan belirtilmelidir. |
secondIndex |
"İkinci" etkinliğin kargo dizini. Bu alan belirtilmelidir. |