Optimization

介绍

Nextbillion.ai Optimization API计算并返回一个优化的路线,该路线在起点和终点之间有多个停靠点。使用NextBillion.ai的Optimization API,你可以得到:

  1. 优化路径点间的路径
  2. 具有高精度到达时间的自定义路径
  3. 对自定义目的地进行往返优化

所有参数的列表在下一节具体说明。

参数

Request 参数

Loading...

Response Schema

Loading...

例子

简单 API Request

{{base_url}}/optimization/json?coordinates=41.35544869444527,2.0747669962025292|41.37498154684205,2.103705 4530396886|41.38772862000152,2.1311887061315526&destination=last&key={{api_key}}&mode=4w&source=first& roundtrip=false&with_geometry=true

对于上述例子,这里是我们使用的参数-

  1. 我们设置了3个由管道符号(|)分隔的坐标。
  2. 我们将目的地设置为最后一个坐标。这意味着我们之前设置的坐标列表的最后一项会被用作目的地。
  3. 出发点属性被设置为第一项,所以坐标列表中的第一个项对将被视为出发点。
  4. 我们将模式设置为4w,这将返回一条只与四轮车有关的路线。
  5. roundtrip属性被设置为false,所以将不会返回任何往返的路线。
  6. 通过设置with_geometry属性为true,我们将确保为旅程的每一段返回路径几何信息。

简单 API Response

1{
2  "code": "Ok",
3  "waypoints": [
4    {
5      "name": "",
6      "location": {
7        "latitude": 41.35544869444527,
8        "longitude": 2.0747669962025292
9      },
10      "trips_index": 0,
11      "waypoint_index": 0
12    },
13    {
14      "name": "",
15      "location": {
16        "latitude": 41.37498154684205,
17        "longitude": 2.1037054530396886
18      },
19      "trips_index": 0,
20      "waypoint_index": 1
21    },
22    {
23      "name": "",
24      "location": {
25        "latitude": 41.38772862000152,
26        "longitude": 2.1311887061315526
27      },
28      "trips_index": 0,
29      "waypoint_index": 2
30    }
31  ],
32  "trips": [
33    {
34      "geometry": "sjc{mA_hs}BtDcGlHkMrEgIpD}H~A}ErAqGj@iFRaHYwI_AsJi@_GcB_PIw@c@_JK{HJwHp@{LHwGAkFr@so@ VuYTcYNsJXqG|@wLdC}PhAmEbB_ExDaIzPmKx@dArAr@v@N^@f@GXE^Sn@m@|@_Bd@oBNiBUmCc@oBi@m@iAi@{@ [mAIkNqe@eTix@iHqXeOod@gC{Hy`@cmAiOme@}D{LoEgNqJeZ}Ii\\cM}e@oEyPsHkWcDiNsAyFk@cDi@aDk@eF{DcYg@ cF{@oFWyBiDuRq@{LhD}Ava@yQ`HrA~Al@~ApAbBhB~ArBlA|BbCxH~AzJElFOfGi@nEsAlFoB|EiBfDyHtGeEnD{ElCuDjAa F~AwD`AiDbAyAx@{@~Bc@V{@^}A\\uGdB_Ex@_@DgNdC{@NyOzCwMlAgCHoHXwFPsLFkQKcBGsLc@_Mq@oLcAoJcAuG w@yHuAwJuBwFkAgHeBcJuB}IqBgAWwFoAsu@wP{G}AaASiB]}WeFeGmAiCg@mMwCaJaCkEiAqFeAkB_@qB_@gFaAaOi Di@KiSmEeNsC_NgCiJgBkZcGqUcFsMkCaB]kAW{KwByA[_Ey@qAYaWsFmXuH{JoD}QaHuEaCmNqHyOsIkM{IwGsF_WyRyH _Hg[}WyJeJ_[kV}LkIaEaCwG{DiN}HqQyHgE_B_EyAe@Q}@]eKuDiAe@eA[qUiGeMkCcAQuFuDsAq@sC{A{As@_LaEuKwD_Jy C{LaFmLoF{KyFwHcEgIeEiFoCkGoEoYcTeB{AwEcF_BmByAkBaAiCsAwDYsBgRl@e_@nAb@iQrAgj@d@uRr@oYlDc|@\\yMt @uZlAuZJwCFqBf@{F?eFzDu}ATgIHuINqH`@aMb`@e]tZkXdNoMfBuAvI}GbJwI|@^p@L~@L|BUbCoBjA{CRqD?gAi@aBu@iBa Ak@gBQu@?cCVkA|@_AxAi@dBM~ACnCwJtIiLpKeUbS{o@jl@yG|FQzI?bDQ|CIvFOvCUnIuEf_BUzFEtAOdHu@dTMfJi@jQaB| l@sBbu@iAt`@mHlGgA~@u@^kA^gARaAHkBCmAU_Cq@{Aq@}A}@gBeA}AsA_CiCiByBqAiBgAqA}@yAi@}@aGuIwEiHg@y @yBkDyEiH{FwJiEoHcHsHkB}CeBuCwIoNsE}GqDmFmFyHcEaF}CoDg@yC{FqGmEaGeEwFsJqM{AaCmByCqD_Hi@mAq@{AyB iG}@yC_A}Dc@}B}@sE_@aCy@oFgAoHmA}HkB}I_@oAQo@a@cAk@}AwAwBgFqGeCcCo@e@cAk@iAg@{CwA[QqCo@kD w@aAOkEo@sNaCuF_BmCqA{DsCm@{@gBsB_@i@w@cBg@cAi@sA_AaDk@mC[oBiAkBsH{_@{D_SsC{Ni@gDUsAmGoYqK{ i@[aBuAeFo@qBaAgBcAoA{@yDmC}NmC{D_CcNkEcWgAeGy@gD_AeGeAwF]uBu@wDOcAsCaOgF_Xi@mGoBmIwDcVo@iFm _@oaCiEmQmAsH{AqJYgBaDgT{AcIaEwX_CkU|DqZ^mMgJcl@uCiReUwyAeQ_z@gOg_AaAoFuB_MkEsVgCkQIg@SiAmA{GmFq ZoE_WmByKk@qDmRgmAoEmYuB}M_BmKcHae@eBgL{AuJeMcx@k@eESwA_A}FwEuVwB}Kk@sDw@sF}DaX_FqXmJog@_BuI sBuMuAyIa@mCwIuk@oBaLU{A}AyJk@sDgCiPiAkH_DcScEyW`ZaK|WcJ|d@eQs@_FeFi^wCg[kQzN",
35      "legs": [
36        {
37          "distance": 4777.4,
38          "duration": 561.1064897726275,
39          "summary": "Carretera del Hospitalet, Ronda de Dalt",
40          "steps": [
41            {
42              "distance": 547.3,
43              "duration": 64.28048349574225,
44              "geometry": "sjc{mA_hs}BtDcGlHkMrEgIpD}H~A}ErAqGj@iFRaHYwI_AsJi@_GcB_PIw@c@_JK{HJwHp@{LHwGAkFr@so@V uYTcYNsJXqG|@wLdC}PhAmEbB_ExDaIzPmK"
45            },
46            {
47              "distance": 23.4,
48              "duration": 2.7483342112193836,
49              "geometry": "}fa{mAq|~}Bx@dArAr@v@N^@f@GXE^Sn@m@"
50            },
51            {
52              "distance": 21,
53              "duration": 2.4664537792994468,
54              "geometry": "e{`{mAuz~}B|@_Bd@oBNiBUmC"
55            },
56            {
57              "distance": 872.7,
58              "duration": 102.49877205688702,
59              "geometry": "gx`{mA}h_~Bc@oBi@m@iAi@{@[mAIkNqe@eTix@iHqXeOod@gC{Hy`@cmAiOme@}D{LoEgNqJeZ}Ii\\cM} e@oEyPsHkWcDiNsAyFk@cDi@aDk@eF{DcYg@cF{@oFWyBiDuRq@{L"
60            },
61            {
62              "distance": 77,
63              "duration": 9.043663857431305,
64              "geometry": "ksg{mAckq~BhD}Ava@yQ"
65            },
66            {
67              "distance": 252.5,
68              "duration": 29.656170441576684,
69              "geometry": "ikf{mA{`r~B`HrA~Al@~ApAbBhB~ArBlA|BbCxH~AzJElFOfGi@nEsAlFoB|EiBfDyHtGeEnD{ElCuDjAaF~ AwD`AiDbAyAx@{@~Bc@V{@^"
70            },
71            {
72              "distance": 1817.2,
73              "duration": 213.4304670353788,
74              "geometry": "kng{mAcln~B}A\\uGdB_Ex@_@DgNdC{@NyOzCwMlAgCHoHXwFPsLFkQKcBGsLc@_Mq@oLcAoJcAuGw @yHuAwJuBwFkAgHeBcJuB}IqBgAWwFoAsu@wP{G}AaASiB]}WeFeGmAiCg@mMwCaJaCkEiAqFeAkB_@qB_@gFaAaOiDi@K iSmEeNsC_NgCiJgBkZcGqUcFsMkCaB]kAW{KwByA[_Ey@qAYaWsFmXuH{JoD}QaHuEaCmNqHyOsIkM{IwGsF_WyRyH_Hg[}Wy JeJ_[kV}LkIaEaCwG{DiN}HqQyHgE_B_EyAe@Q}@]eKuDiAe@eA[qUiGeMkCcAQ"
75            },
76            {
77              "distance": 364.5,
78              "duration": 42.810590597840395,
79              "geometry": "mue|mAmfy~BuFuDsAq@sC{A{As@_LaEuKwD_JyC{LaFmLoF{KyFwHcEgIeEiFoCkGoEoYcTeB{AwEcF_BmB yAkBaAiCsAwDYsB"
80            },
81            {
82              "distance": 91.7,
83              "duration": 10.770181502940918,
84              "geometry": "qgk|mAcd}~BgRl@e_@nA"
85            },
86            {
87              "distance": 327.1,
88              "duration": 38.41795386708805,
89              "geometry": "_{l|mAe`}~Bb@iQrAgj@d@uRr@oYlDc|@\\yMt@uZlAuZJwC"
90            },
91            {
92              "distance": 211.7,
93              "duration": 24.864203098937757,
94              "geometry": "qil|mA_td_CFqBf@{F?eFzDu}ATgIHuINqH`@aM"
95            },
96            {
97              "distance": 171.3,
98              "duration": 20.11921582828549,
99              "geometry": "s_l|mA{qi_Cb`@e]tZkXdNoMfBuA"
100            },
101            {
102              "distance": 0,
103              "duration": 0,
104              "geometry": "kpi|mAszk_C"
105            }
106          ]
107        },
108        {
109          "distance": 4335.4,
110          "duration": 509.1935102273724,
111          "summary": "Avinguda Diagonal, Avenida Diagonal",
112          "steps": [
113            {
114              "distance": 47,
115              "duration": 5.520158458432095,
116              "geometry": "kpi|mAszk_CvI}GbJwI"
117            },
118            {
119              "distance": 44.2,
120              "duration": 5.191297954525503,
121              "geometry": "ozh|mAinl_C|@^p@L~@L|BUbCoBjA{CRqD?gA"
122            },
123            {
124              "distance": 55.5,
125              "duration": 6.518484988148538,
126              "geometry": "}ih|mAi}l_Ci@aBu@iBaAk@gBQu@?cCVkA|@_AxAi@dBM~ACnC"
127            },
128            {
129              "distance": 208.1,
130              "duration": 24.44138245105785,
131              "geometry": "i~h|mAmul_CwJtIiLpKeUbS{o@jl@"
132            },
133            {
134              "distance": 233.4,
135              "duration": 27.412872004213853,
136              "geometry": "m~k|mAu|i_CyG|FQzI?bDQ|CIvFOvCUnIuEf_BUzFEtAOdH"
137            },
138            {
139              "distance": 247.5,
140              "duration": 29.06891954174348,
141              "geometry": "}ql|mAytd_Cu@dTMfJi@jQaB|l@sBbu@iAt`@"
142            },
143            {
144              "distance": 367.3,
145              "duration": 43.13945110174699,
146              "geometry": "k~l|mAg|~~BmHlGgA~@u@^kA^gARaAHkBCmAU_Cq@{Aq@}A}@gBeA}AsA_CiCiByBqAiBgAqA}@yAi@} @aGuIwEiHg@y@yBkDyEiH{FwJiEoHcHsHkB}CeBuCwIoNsE}GqDmFmFyHcEaF}CoD"
147            },
148            {
149              "distance": 688,
150              "duration": 80.80572381704854,
151              "geometry": "syq|mAqoc_Cg@yC{FqGmEaGeEwFsJqM{AaCmByCqD_Hi@mAq@{AyBiG}@yC_A}Dc@}B}@sE_@aCy@o FgAoHmA}HkB}I_@oAQo@a@cAk@}AwAwBgFqGeCcCo@e@cAk@iAg@{CwA[QqCo@kDw@aAOkEo@sNaCuF_BmCqA{DsCm@ {@gBsB_@i@w@cBg@cAi@sA_AaDk@mC[oBiAkBsH{_@{D_SsC{Ni@gDUsAmGoYqK{i@[aBuAeFo@qBaAgBcAoA"
152            },
153            {
154              "distance": 274.2,
155              "duration": 32.20483934685278,
156              "geometry": "gvx|mAyro_C{@yDmC}NmC{D_CcNkEcWgAeGy@gD_AeGeAwF]uBu@wDOcAsCaOgF_Xi@mGoBmIwDcV"
157            },
158            {
159              "distance": 366.1,
160              "duration": 42.99851088578703,
161              "geometry": "emz|mAuqu_Co@iFm_@oaCiEmQmAsH{AqJYgBaDgT{AcIaEwX_CkU"
162            },
163            {
164              "distance": 805.1,
165              "duration": 94.55913989114212,
166              "geometry": "qm||mA{u}_C|DqZ^mMgJcl@uCiReUwyAeQ_z@gOg_AaAoFuB_MkEsVgCkQIg@SiAmA{GmFqZoE_WmB yKk@qDmRgmAoEmY"
167            },
168            {
169              "distance": 291,
170              "duration": 34.17800237029233,
171              "geometry": "so`}mA{po`CuB}M_BmKcHae@eBgL{AuJeMcx@k@eESwA_A}FwEuVwB}Kk@sD"
172            },
173            {
174              "distance": 407.6,
175              "duration": 47.8726933544026,
176              "geometry": "qcb}mAo_v`Cw@sF}DaX_FqXmJog@_BuIsBuMuAyIa@mCwIuk@oBaLU{A}AyJk@sDgCiPiAkH_DcScEyW"
177            },
178            {
179              "distance": 169.3,
180              "duration": 19.88431546835221,
181              "geometry": "_md}mAq`_aC`ZaK|WcJ|d@eQ"
182            },
183            {
184              "distance": 92.2,
185              "duration": 10.828906592924238,
186              "geometry": "asa}mA}i`aCs@_FeFi^wCg["
187            },
188            {
189              "distance": 39,
190              "duration": 4.580557018698973,
191              "geometry": "s`b}mAolbaCkQzN"
192            },
193            {
194              "distance": 0,
195              "duration": 0,
196              "geometry": "_sb}mAs|aaC"
197            }
198          ]
199        }
200      ],
201      "duration": 1070.3,
202      "distance": 9112.8
203    }
204  ]
205}

API 错误码

Response CodeDescriptionAdditional Notes
200Normal success case.

Normal success case.

400Input validation failed.

Such as missing parameter or parameter with invalid value type (for example value cannot be parsed into number).

401APIKEY not supplied or invalid.

This error occurs when the wrong API key is passed in the request or the key is missing altogether

403APIKEY is valid but does not have access to requested resources.

You might be querying for a geographical region which is not valid for your account, or requesting a service which is not enabled for you.

404Requested host/path not found.

This error occurs when there is a malformed host name used.

422Could not process the request.

There is an underlying map issue which prevents the processing of the request.

429Too many requests.

QPM reached or API request count quota reached.

500Internal Service error.

There was an internal issue with NextBillion.ai services. You can reach out to [email protected] for an explanation.

快速开始
没找到你要找的内容?