-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathRouteParameters.dtd
558 lines (557 loc) · 18.5 KB
/
RouteParameters.dtd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "https://github.com/route4me/route4me-json-schemas/blob/master/RouteParameters.dtd",
"title": "Route Parameters",
"type": "object",
"properties": {
"is_upload": {
"type": ["boolean", "null"],
"title": "Is Upload",
"description": "Let the R4M api know if this sdk request is coming from a file upload within your environment (for analytics)"
},
"rt": {
"type": ["boolean", "null"],
"title": "Round Trip",
"description": "The tour type of this route. rt is short for round trip, the optimization engine changes its behavior for round trip routes"
},
"disable_optimization": {
"type": ["boolean", "null"],
"title": "Disable Optimization",
"description": "By disabling optimization, the route optimization engine will not resequence the stops in your"
},
"route_name": {
"type": ["string", "null"],
"title": "Route Name",
"description": "The name of this route. this route name will be accessible in the search API, and also will be displayed on the mobile device of a user"
},
"route_date": {
"type": ["integer", "null"],
"title": "Route Date",
"description": "The route start date in UTC, unix timestamp seconds. Used to show users when the route will begin, also used for reporting and analytics"
},
"route_time": {
"type": "integer",
"default": 25200,
"title": "Route Time",
"description": "Time when the route starts (relative to route_date) (Seconds). UTC timezone as well"
},
"shared_publicly": {
"type": ["string", "null"],
"title": "Shared Publicly",
"description": "Deprecated. Specify if the route can be viewed by unauthenticated users"
},
"optimize": {
"type": ["string", "null"],
"enum": ["Distance", "Time", "timeWithTraffic"],
"title": "Optimize",
"description": "The driving directions will be generated biased for this selection. This has no impact on route sequencing"
},
"lock_last": {
"type": ["boolean", "null"],
"title": "Lock Last",
"description": "A flag to indicate if the last stop in the route should be fixed"
},
"vehicle_capacity": {
"type": ["number", "null"],
"title": "Vehicle Capacity",
"description": "How much cargo can the vehicle carry (units, e.g. cubic meters)"
},
"vehicle_max_cargo_weight": {
"type": ["number", "null"],
"title": "Vehicle Maximum Cargo Weight",
"description": "Maximum cargo weight a vehicle can carry. Number precision = 1 (e.g. 4.9)."
},
"vehicle_max_cargo_volume": {
"type": ["number", "null"],
"title": "Vehicle Maximum Cargo Volume",
"description": "Maximum cargo volume a vehicle can carry. Number precision = 2 (e.g. 3.54)."
},
"vehicle_max_distance_mi": {
"type": ["integer", "null"],
"title": "Vehicle Maximum Distance (mi)",
"description": "Maximum distance for a single vehicle in this route (always in miles)"
},
"subtour_max_revenue": {
"type": ["integer", "null"],
"title": "Subtour Max Revenue",
"description": "Maximum allowed revenue from a subtour"
},
"distance_unit": {
"type": "string",
"enum": ["mi", "km"],
"title": "Distance Unit",
"description": "The distance measurement unit for the route"
},
"travel_mode": {
"type": "string",
"enum": ["Driving", "Walking", "Bicycling"],
"title": "Travel Mode",
"description": "The mode of travel that the directions should be optimized for"
},
"avoid": {
"type": "string",
"enum": ["Highways", "Tolls", "minimizeHighways", "minimizeTolls", "highways,tolls", ""],
"title": "Avoid",
"description": "Options which let the user choose which road obstacles to avoid. This has no impact on route sequencing"
},
"avoidance_zones": {
"type": "array",
"items": {"type": "string"},
"title": "Avoidance Zones",
"description": "Array of the Avoidance zones IDs"
},
"vehicle_id": {
"type": ["string", "null"],
"title": "Vehicle ID",
"description": "The unique internal id of a vehicle"
},
"driver_id": {
"type": ["string", "null"],
"title": "Driver ID",
"description": "The unique internal id of a driver"
},
"dev_lat": {
"type": ["number", "null"],
"title": "Device Latitude",
"description": "The latitude location of where a mobile device was located when it made a request to create the route."
},
"dev_lng": {
"type": ["number", "null"],
"title": "Device Longitude",
"description": "The longitude location of where a mobile device was located when it made a request to create the route"
},
"route_max_duration": {
"type": "integer",
"default": 86400,
"title": "Route Maximum Duration",
"description": "How many seconds a route can last at most. Default is 24 hours = 86400 seconds"
},
"target_duration": {
"type": "double",
"title": "Target Duration",
"description": "The parameter specifies fine-tuning of an optimization process by route duration."
},
"target_distance": {
"type": "double",
"title": "Target Distance",
"description": "The parameter specifies fine-tuning of an optimization process by route distance."
},
"target_wait_by_tail_size": {
"type": "double",
"title": "Target Wait By Tail Size",
"description": "The parameter specifies fine-tuning of an optimization process by waiting time."
},
"route_email": {
"type": ["string", "null"],
"title": "Route Email",
"format": "email",
"description": "Addresses where this route was shared after completion"
},
"store_route": {
"type": ["boolean", "null"],
"title": "Store Route",
"description": "Always true"
},
"metric": {
"type": "integer",
"enum": [1, 2, 3, 4, 5 ],
"title": "Metric",
"description": "1 = ROUTE4ME_METRIC_EUCLIDEAN, 2 = ROUTE4ME_METRIC_MANHATTAN, 3 = ROUTE4ME_METRIC_GEODESIC, 4 = ROUTE4ME_METRIC_MATRIX, 5 = ROUTE4ME_METRIC_EXACT_2D"
},
"algorithm_type": {
"type": "integer",
"enum": [1, 2, 3, 4, 5, 6, 7, 9, 100, 101 ],
"title": "Algorithm Type",
"description": "The algorithm to be used: 1 = TSP, 2 = VRP, 3 = CVRP_TW_SD, 4 = CVRP_TW_MD, 5 = TSP_TW, 6 = TSP_TW_CR, 7 = BBCVRP, 9 = ADVANCED_CVRP_TW,100 = ALG_NONE, 101 = ALG_LEGACY_DISTRIBUTED"
},
"member_id": {
"type": ["string", "null"],
"title": "Member ID",
"description": "User ID who is assigned to the route"
},
"ip": {
"type": ["integer", "null"],
"title": "IP",
"description": "IP Address in decimal form of user who created the route"
},
"dm": {
"type": ["integer", "null"],
"title": "DM",
"description": "Undocumented/not publicly shown"
},
"dirm": {
"type": ["integer", "null"],
"title": "Directions Method",
"description": "Undocumented/not publicly shown"
},
"parts": {
"type": ["integer", "null"],
"title": "Parts",
"description": "Legacy feature which permits a user to request an example number of optimized routes"
},
"parts_min": {
"type": ["integer", "null"],
"title": "Parts Minimum",
"description": "Minimum number of optimized routes"
},
"device_id": {
"type": ["string", "null"],
"title": "Device ID",
"description": "32 Character MD5 String ID of the device that was used to plan this route"
},
"device_type": {
"type": "string",
"enum": ["web", "iphone", "ipad", "android_phone", "android_tablet"],
"title": "Device Type",
"description": "The type of the device that is creating this route"
},
"first_drive_then_wait_between_stops": {
"type": "boolean",
"title": "First Drive Then Wait Between Stops",
"description": "First drive then wait between stops"
},
"has_trailer": {
"type": "boolean",
"default": false,
"title": "Has Trailer",
"description": "if True vehicle has trailer"
},
"trailer_weight_t": {
"type": ["number", "null"],
"title": "Trailer Weight (t)",
"description": "If has_trailer = true, specifies the weight of the trailer (required). Number precision = 2 (e.g. 3.54)."
},
"limited_weight_t": {
"type": ["number", "null"],
"title": "Limited Weight (t)",
"description": "If travel_mode = 'Trucking', specifies the truck weight (required). Number precision = 2 (e.g. 3.54)."
},
"weight_per_axle_t": {
"type": ["number", "null"],
"title": "Weight per Axle (t)",
"description": "If travel_mode = 'Trucking', specifies the weight per axle (required). Number precision = 2 (e.g. 3.54)."
},
"truck_height": {
"type": ["integer", "null"],
"title": "Truck Height",
"description": "If travel_mode = 'Trucking', specifies the truck height (required)"
},
"truck_width": {
"type": ["integer", "null"],
"title": "Truck Width",
"description": "If travel_mode = 'Trucking', specifies the truck width (required)"
},
"truck_length": {
"type": ["integer", "null"],
"title": "Truck Length",
"description": "If travel_mode = 'Trucking', specifies the truck length (required)"
},
"truck_hazardous_goods": {
"type": "string",
"title": "Truck Hazardous Goods",
"description": "Comma-delimited list of the truck hazardous goods"
},
"truck_axles": {
"type": ["integer", "null"],
"title": "Truck Axles",
"description": "Truck axles number"
},
"truck_toll_road_usage": {
"type": ["string", "null"],
"enum": ["YES", "NO"],
"title": "Truck Toll Road Usage",
"description": "Truck toll road usage"
},
"truck_avoid_ferries": {
"type": ["string", "null"],
"enum": ["YES", "NO"],
"title": "Truck Avoid Ferries",
"description": "Truck avoid ferries"
},
"truck_hwy_only": {
"type": ["string", "null"],
"enum": ["YES", "NO"],
"title": "Truck Highway Only",
"description": "Truck highway only"
},
"truck_lcv": {
"type": ["string", "null"],
"enum": ["YES", "NO"],
"title": "Truck LCV",
"description": "Truck of the type Long Combination Vehicle"
},
"truck_borders": {
"type": ["string", "null"],
"enum": ["YES", "NO"],
"title": "Truck Borders",
"description": "Avoid international borders"
},
"truck_side_street_adherence": {
"type": "string",
"enum": ["OFF", "MINIMAL","MODERATE","AVERAGE","STRICT","ADHERE","STRONGLYHERE"],
"default": "OFF",
"title": "Truck Side Street Adherence",
"description": "Truck side street adherence"
},
"truck_config": {
"type": ["string", "null"],
"enum": ["NONE","PASSENGER","28_DOUBLETRAILER","48_STRAIGHT_TRUCK","48_SEMI_TRAILER","53_SEMI_TRAILER","FULLSIZEVAN","26_STRAIGHT_TRUCK"],
"title": "Truck Config",
"description": "Truck configuration"
},
"truck_dim_unit": {
"type": "string",
"enum": ["mi","km"],
"title": "Truck Dimension Unit",
"description": "Truck dimension unit"
},
"truck_type": {
"type": "string",
"enum": ["suv","pickup_truck","van","18wheeler","cabin","waste_disposal","tree_cutting","bigrig","cement_mixer","livestock_carrier","dairy","tractor_trailer"],
"title": "Truck Type",
"description": "Truck type"
},
"truck_weight": {
"type": ["number", "null"],
"title": "Truck Weight",
"description": "If travel_mode = 'Trucking', specifies the truck weight (required). Number precision = 2 (e.g. 4.65)."
},
"min_tour_size": {
"type": ["integer", "null"],
"title": "Minimum Tour Size",
"description": "Must be > 0; the minimum number of stops allowed in a subtour. null means there is no minimum"
},
"max_tour_size": {
"type": ["integer", "null"],
"title": "Maximum Tour Size",
"description": "Must be > 0; the maximum number of stops allowed in a subtour. null means there is no maximum"
},
"optimization_quality": {
"type": ["integer", "null"],
"title": "Optimization Quality",
"description": "there are 3 types of optimization qualities that are optimizations goals (1 - Generate Optimized Routes As Quickly as Possible, 2 - Generate Routes That Look Better On A Map, 3 - Generate The Shortest And Quickest Possible Routes)"
},
"uturn": {
"type": ["integer", "null"],
"title": "uturn",
"description": "Available with:1 = UTURN_DEPART_SHORTEST (Allows U-turns), 2 = UTURN_DEPART_TO_RIGHT (Forbids U-turns), 3 = UTURN_DEPART_TO_LEFT (Deprecated)"
},
"leftturn": {
"type": ["integer", "null"],
"title": "leftturn",
"description": "Available with: 1 = LEFTTURN_ALLOW, 2 = LEFTTURN_FORBID, 3 = LEFTTURN_MULTIAPPROACH (assumes points are intersections and visits them from all sides. Ignores uturn and leftturn constraints.)"
},
"rightturn": {
"type": ["integer", "null"],
"title": "rightturn",
"description": "Available with: 1 = RIGHTTURN_ALLOW, 2 = RIGHTTURN_FORBID, 3 = RIGHTTURN_MULTIAPPROACH (assumes points are intersections and visits them from all sides. Ignores uturn and leftturn constraints.)"
},
"route_time_multiplier": {
"type": ["integer", "null"],
"title": "Route Time Multiplier",
"description": "Route travel time slowdown (e.g. 25 (means 25% slowdown))"
},
"route_service_time_multiplier": {
"type": ["integer", "null"],
"title": "Route Service Time Multiplier",
"description": "Route service time slowdown (e.g. 10 (means 10% slowdown))"
},
"optimization_engine": {
"type": "string",
"title": "Optimization Engine",
"description": "The parameter shows what solver engine system use for build optimization routes 1 RVRP, 2 NVRP (default)."
},
"ignore_tw" : {
"type": "boolean",
"title": "Ignore Time Windows",
"description": "If true, the address time windows ignored."
},
"override_addresses": {
"type": "object",
"title": "Override Addresses",
"properties": {
"time": {
"type": "integer",
"title": "Time",
"description": "Service time at a route destination (address)"
},
"address_stop_type": {
"type": "string",
"enum": ["DELIVERY","PICKUP","BREAK","MEETUP","SERVICE","VISIT","DRIVEBY"],
"title": "AddressStopType",
"description": "The type of stop that this is (DELIVERY,PICKUP,BREAK,MEETUP,SERVICE,VISIT,DRIVEBY)"
},
"group": {
"type": "string",
"title": "Group",
"description": "Address group"
}
}
},
"slowdowns": {
"type": "object",
"title": "Slowdowns",
"properties": {
"service_time": {
"type": "integer",
"title": "Service Time",
"description": "Service time slowdowon (percent)."
},
"travel_time": {
"type": "integer",
"title": "Travel Time",
"description": "Travel time slowdowon (percent)."
}
}
},
"is_dynamic_start_time": {
"type": "boolean",
"title": "Is Dynamic Start Time",
"description": "If true, the start time is dynamic."
},
"bundling": {
"type": "object",
"$ref": "https://github.com/route4me/route4me-json-schemas/blob/master/Address_bundling.dtd",
"description": "Address_bundling rules"
},
"advanced_constraints": {
"type": "array",
"items": {
"type": "object",
"title": "Advanced Constraints",
"properties": {
"max_cargo_weight": {
"type": "number",
"title": "Maximum Cargo Weight",
"description": "Maximum cargo weight per route."
},
"max_cargo_volume": {
"type": "number",
"title": "Maximum Cargo Volume",
"description": "Maximum cargo volume per route."
},
"max_capacity": {
"type": "integer",
"title": "Maximum Vehicle Capacity",
"description": "How much total cargo can be transported per route (units, e.g. cubic meters)."
},
"members_count": {
"type": "integer",
"title": "Members Count",
"description": "Legacy feature which permits a user to request an example number of optimized routes."
},
"vehicles_id": {
"type": "array",
"description": "An array of the vehicle IDs.",
"items": {
"type": "string"
}
},
"available_time_windows": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "integer"
}
}
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"title": "Tags",
"description": "The driver tags specified in a team member's custom data. ((e.g. 'driver skills': ['Class A CDL', 'Class B CDL', 'Forklift', 'Skid Steer Loader', 'Independent Contractor''])"
},
"route4me_members_id": {
"type": "array",
"items": {
"type": "integer"
}
},
"depot_address": {
"type": "object",
"properties": {
"source": {
"type": "object",
"description": "A source of the depots",
"properties": {
"source_id": {
"type": "integer",
"title": "Source ID",
"description": "Source ID"
},
"source_type": {
"type": "string",
"title": "Source Type",
"description": "Source type (e.g. input_addresses)"
}
}
}
}
},
"location_sequence_pattern": {
"type": "array",
"description": "The parameter is used in advanced constraints to set the stops you plan to visit each route. Note: empty string \"\" means any stops, for example [\"\", AddresssObject1, AddresssObject2, \"\", AddresssObject3] means any stops before AddresssObject1 and between AddresssObject2 and AddresssObject3.",
"items": {
"type": "object",
"properties": {
"alias": {
"type": "string",
"title": "Alias",
"description": "Location alias"
},
"address": {
"type": "string",
"title": "Address",
"description": "Location address"
},
"lat": {
"type": "number",
"title": "Latitude",
"description": "Location latitude"
},
"lng": {
"type": "number",
"title": "Longitude",
"description": "Location longitude"
}
}
}
},
"group": {
"type": "string",
"title": "Group",
"description": "Group name of the advanced constraints."
}
}
}
},
"balance": {
"type": "object",
"title": "Balance",
"description": "Route balancing parameter.",
"properties": {
"mode": {
"type": "string",
"enum": ["distance", "time", "destinations_count"],
"title": "Mode",
"description": "Route balancing mode. Available values: 'distance', 'time', 'destinations_count'"
}
}
},
"group_max_routes": {
"type": "array",
"description": "Specifies the maximum number of the routes by advanced constraint groups.",
"items": {
"type": "array",
"description": "The pairs of the group name and the maximum allowed route number in the advanced constraint group.",
"items": {
"type": "object",
"description": "Available values: group name and maximum allowed route number in the advanced constraint group."
}
}
}
}
}