Combining Restrictions

Can you combine restriction types? i.e. have ready/due and before/after in the same request? I can get routes to populate using each separately, but when I try and combine the before/after is not calculating correctly.

Yes, combining restriction types is possible.

If you get incorrect results, share the call you’re making so we can check it out.

You should check your input and simplify the request. Every restriction you add makes the optimization more difficult. When you add multiple locations on the same position, with different restrictions and defining themselves as pickup point, the probability of unpredictable and incorrect results increases.

E.g. 

locations[9] => {“address”:“2416136000006396588”,“lat”:“53.2577878”,“lng”:"-113.459156",“restrictions”:{“before”:“9”,“after”:“8”}}

locations[28] => {“address”:“2416136000006396588”,“lat”:“53.2577878”,“lng”:"-113.459156",“restrictions”:{“before”:“28”,“after”:“27”}},

Try to remove all unnecessary restrictions and combine locations as much as possible.

Note that you can import your locations JSON on the website to check input and results.

Request:
[{“address”:“2416136000006403139”,“lat”:“53.568452”,“lng”:"-113.740683"},{“address”:“2416136000006548862”,“lat”:“53.6167063”,“lng”:"-113.3951277",“servicetime”:“10”,“restrictions”:{“ready”:“60”,“due”:“1035”}},{“address”:“2416136000006548866”,“lat”:“53.6296482”,“lng”:"-113.5440831",“servicetime”:“10”,“restrictions”:{“ready”:“60”,“due”:“1035”}},{“address”:“2416136000006548886”,“lat”:“53.5380402”,“lng”:"-113.5000828",“servicetime”:“10”,“restrictions”:{“ready”:“45”,“due”:“270”}},{“address”:“2416136000006548890”,“lat”:“53.5417972”,“lng”:"-113.8997935",“servicetime”:“10”,“restrictions”:{“ready”:“60”,“due”:“1035”}},{“address”:“2416136000006548910”,“lat”:“53.5416586”,“lng”:"-113.317845",“servicetime”:“10”,“restrictions”:{“ready”:“60”,“due”:“1035”}},{“address”:“2416136000006548918”,“lat”:“53.5487253”,“lng”:"-113.9362426",“servicetime”:“10”,“restrictions”:{“ready”:“60”,“due”:“1035”}},{“address”:“2416136000006548942”,“lat”:“53.563074”,“lng”:"-113.8875927",“servicetime”:“10”,“restrictions”:{“ready”:“60”,“due”:“1035”}},{“address”:“2416136000006548958”,“lat”:“53.5407973”,“lng”:"-113.3215948",“servicetime”:“10”,“restrictions”:{“ready”:“60”,“due”:“1035”}},{“address”:“2416136000006396588”,“lat”:“53.2577878”,“lng”:"-113.459156",“restrictions”:{“before”:“9”,“after”:“8”}},{“address”:“2416136000006548962”,“lat”:“53.5496936”,“lng”:"-113.9354622",“servicetime”:“10”,“restrictions”:{“ready”:“60”,“due”:“1035”}},{“address”:“2416136000006548966”,“lat”:“53.549696”,“lng”:"-113.9356922",“servicetime”:“10”,“restrictions”:{“ready”:“60”,“due”:“1035”}},{“address”:“2416136000006548974”,“lat”:“53.5491059”,“lng”:"-113.9355213",“servicetime”:“10”,“restrictions”:{“ready”:“60”,“due”:“1035”}},{“address”:“2416136000006548986”,“lat”:“53.5113168”,“lng”:"-114.0040115",“servicetime”:“10”,“restrictions”:{“ready”:“60”,“due”:“1035”}},{“address”:“2416136000006548998”,“lat”:“53.6158536”,“lng”:"-113.3949522",“servicetime”:“10”,“restrictions”:{“ready”:“60”,“due”:“1035”}},{“address”:“2416136000006585006”,“lat”:“53.424775”,“lng”:"-113.4462039",“servicetime”:“10”,“restrictions”:{“ready”:“60”,“due”:“1035”}},{“address”:“2416136000006585018”,“lat”:“53.5365043”,“lng”:"-113.3222429",“servicetime”:“10”,“restrictions”:{“ready”:“60”,“due”:“1035”}},{“address”:“2416136000006585022”,“lat”:“53.5386409”,“lng”:"-113.5211237",“servicetime”:“10”,“restrictions”:{“ready”:“15”,“due”:“45”}},{“address”:“2416136000006585030”,“lat”:“53.435307”,“lng”:"-113.607842",“servicetime”:“10”,“restrictions”:{“ready”:“60”,“due”:“1035”}},{“address”:“2416136000006585078”,“lat”:“53.497806”,“lng”:"-113.419779",“servicetime”:“10”,“restrictions”:{“ready”:“60”,“due”:“1035”}},{“address”:“2416136000006585098”,“lat”:“53.6172285”,“lng”:"-113.3945706",“servicetime”:“10”,“restrictions”:{“ready”:“60”,“due”:“1035”}},{“address”:“2416136000006585102”,“lat”:“53.6293018”,“lng”:"-113.547426",“servicetime”:“10”,“restrictions”:{“ready”:“60”,“due”:“1035”}},{“address”:“2416136000006585114”,“lat”:“53.6273194”,“lng”:"-113.4162171",“servicetime”:“10”,“restrictions”:{“ready”:“60”,“due”:“1035”}},{“address”:“2416136000006585118”,“lat”:“53.6506256”,“lng”:"-113.6164835",“servicetime”:“10”,“restrictions”:{“ready”:“60”,“due”:“1035”}},{“address”:“2416136000006585134”,“lat”:“53.5433243”,“lng”:"-113.884499",“servicetime”:“10”,“restrictions”:{“ready”:“60”,“due”:“1035”}},{“address”:“2416136000006585154”,“lat”:“53.5571775”,“lng”:"-113.5009056",“servicetime”:“10”,“restrictions”:{“ready”:“60”,“due”:“1035”}},{“address”:“2416136000006585162”,“lat”:“53.5475216”,“lng”:"-113.5272078",“servicetime”:“10”,“restrictions”:{“ready”:“45”,“due”:“210”}},{“address”:“2416136000007710422”,“lat”:“53.5391011”,“lng”:"-113.9811287",“servicetime”:“10”,“restrictions”:{“ready”:“60”,“due”:“1035”}},{“address”:“2416136000006396588”,“lat”:“53.2577878”,“lng”:"-113.459156",“restrictions”:{“before”:“28”,“after”:“27”}},{“address”:“2416136000007710650”,“lat”:“53.5504071”,“lng”:"-113.9369442",“servicetime”:“10”,“restrictions”:{“ready”:“60”,“due”:“1035”}},{“address”:“2416136000010351003”,“lat”:“53.5475216”,“lng”:"-113.5272078"},{“address”:“2416136000006403139”,“lat”:“53.568452”,“lng”:"-113.740683"}]

result:
{“id”:“613IC8q2”,“count”:32,“feasible”:true,“route”:{“0”:{“name”:“2416136000006403139”,“arrival”:0,“distance”:0},“1”:{“name”:“2416136000006585022”,“arrival”:21,“distance”:22.2},“2”:{“name”:“2416136000010351003”,“arrival”:32,“distance”:23.5},“3”:{“name”:“2416136000006585162”,“arrival”:32,“distance”:23.5},“4”:{“name”:“2416136000006585154”,“arrival”:59,“distance”:26.8},“5”:{“name”:“2416136000006548886”,“arrival”:73,“distance”:29.6},“6”:{“name”:“2416136000006585078”,“arrival”:93,“distance”:39.4},“7”:{“name”:“2416136000006585018”,“arrival”:113,“distance”:51.2},“8”:{“name”:“2416136000006548958”,“arrival”:124,“distance”:52},“9”:{“name”:“2416136000006548910”,“arrival”:135,“distance”:52.5},“10”:{“name”:“2416136000006585098”,“arrival”:156,“distance”:65.5},“11”:{“name”:“2416136000006548998”,“arrival”:167,“distance”:66.1},“12”:{“name”:“2416136000006548862”,“arrival”:177,“distance”:66.1},“13”:{“name”:“2416136000006585114”,“arrival”:192,“distance”:69.6},“14”:{“name”:“2416136000006548866”,“arrival”:212,“distance”:79},“15”:{“name”:“2416136000006585102”,“arrival”:223,“distance”:79.5},“16”:{“name”:“2416136000006585118”,“arrival”:240,“distance”:85.8},“17”:{“name”:“2416136000006548962”,“arrival”:272,“distance”:117},“18”:{“name”:“2416136000007710650”,“arrival”:283,“distance”:117.1},“19”:{“name”:“2416136000006548966”,“arrival”:293,“distance”:117.3},“20”:{“name”:“2416136000006548974”,“arrival”:304,“distance”:117.4},“21”:{“name”:“2416136000006548918”,“arrival”:314,“distance”:117.5},“22”:{“name”:“2416136000007710422”,“arrival”:328,“distance”:121.6},“23”:{“name”:“2416136000006548986”,“arrival”:343,“distance”:126.1},“24”:{“name”:“2416136000006548890”,“arrival”:363,“distance”:136.2},“25”:{“name”:“2416136000006585134”,“arrival”:374,“distance”:137.5},“26”:{“name”:“2416136000006548942”,“arrival”:386,“distance”:139.9},“27”:{“name”:“2416136000006585030”,“arrival”:419,“distance”:172.9},“28”:{“name”:“2416136000006585006”,“arrival”:441,“distance”:186},“29”:{“name”:“2416136000006396588”,“arrival”:477,“distance”:215.9},“30”:{“name”:“2416136000006396588”,“arrival”:477,“distance”:215.9},“31”:{“name”:“2416136000006403139”,“arrival”:524,“distance”:276.3}}}

I should mention that I have tried before {“before”:“9”,“after”:“10”} as well

Is there a way to define them as something other then a pickup point. Basically what you are seeing is a truck making pickups and going to a depot when it would be full. I have them in there that way rather then a start/end because I want all of the locations to be considered when the route is being calculated.