Я уже давно пользуюсь API-интерфейсом Google.Я разрабатываю алгоритм, который извлекает маршрут между двумя точками и обеспечивает основные направления.Например, если автомобиль едет в адресную точку, я должен знать, что в данный момент он движется на север, запад, восток или юг.Направления API предоставляет только такую информацию, как продолжительность, расстояние, маршруты и инструкции на дороге.Но ничего, что касается предмета.Любая идея, где и как получить основные направления при навигации к точке адреса?Ниже я приложил результат запроса к API-адресам Google в формате JSON.
Примечание. Я не занимаюсь разработкой приложения для Android или веб-сайта.Только чистый алгоритм.
{
"geocoded_waypoints" : [
{
"geocoder_status" : "OK",
"place_id" : "ChIJa147K9HX3IAR-lwiGIQv9i4",
"types" : [ "amusement_park", "establishment", "point_of_interest" ]
},
{
"geocoder_status" : "OK",
"place_id" : "ChIJzzgyJU--woARcZqceSdQ3dM",
"types" : [ "amusement_park", "establishment", "point_of_interest" ]
}
],
"routes" : [
{
"bounds" : {
"northeast" : {
"lat" : 34.1358593,
"lng" : -117.922066
},
"southwest" : {
"lat" : 33.815582,
"lng" : -118.3517026
}
},
"copyrights" : "Map data ©2019 Google",
"legs" : [
{
"distance" : {
"text" : "35.3 mi",
"value" : 56746
},
"duration" : {
"text" : "48 mins",
"value" : 2853
},
"end_address" : "100 Universal City Plaza, Universal City, CA 91608, USA",
"end_location" : {
"lat" : 34.1358593,
"lng" : -118.3511633
},
"start_address" : "1313 Disneyland Dr, Anaheim, CA 92802, USA",
"start_location" : {
"lat" : 33.8160897,
"lng" : -117.9225225
},
"steps" : [
{
"distance" : {
"text" : "10 ft",
"value" : 3
},
"duration" : {
"text" : "1 min",
"value" : 0
},
"end_location" : {
"lat" : 33.8160679,
"lng" : -117.9225314
},
"html_instructions" : "Head \u003cb\u003esouthwest\u003c/b\u003e",
"polyline" : {
"points" : "qukmEvvvnUB@"
},
"start_location" : {
"lat" : 33.8160897,
"lng" : -117.9225225
},
"travel_mode" : "DRIVING"
},
{
"distance" : {
"text" : "0.1 mi",
"value" : 164
},
"duration" : {
"text" : "1 min",
"value" : 15
},
"end_location" : {
"lat" : 33.815582,
"lng" : -117.9240573
},
"html_instructions" : "Keep \u003cb\u003eright\u003c/b\u003e",
"maneuver" : "keep-right",
"polyline" : {
"points" : "mukmExvvnUZPLJLLBBFJFLHPBPBL@N?L?J@l@?|A"
},
"start_location" : {
"lat" : 33.8160679,
"lng" : -117.9225314
},
"travel_mode" : "DRIVING"
},
{
"distance" : {
"text" : "289 ft",
"value" : 88
},
"duration" : {
"text" : "1 min",
"value" : 32
},
"end_location" : {
"lat" : 33.816278,
"lng" : -117.9242395
},
"html_instructions" : "Slight \u003cb\u003eright\u003c/b\u003e\u003cdiv style=\"font-size:0.9em\"\u003eRestricted usage road\u003c/div\u003e",
"maneuver" : "turn-slight-right",
"polyline" : {
"points" : "krkmEj`wnUOF?F?DABABCBC?C@E?eB?"
},
"start_location" : {
"lat" : 33.815582,
"lng" : -117.9240573
},
"travel_mode" : "DRIVING"
},
{
"distance" : {
"text" : "358 ft",
"value" : 109
},
"duration" : {
"text" : "1 min",
"value" : 28
},
"end_location" : {
"lat" : 33.8162692,
"lng" : -117.9254181
},
"html_instructions" : "Turn \u003cb\u003eleft\u003c/b\u003e\u003cdiv style=\"font-size:0.9em\"\u003eRestricted usage road\u003c/div\u003e",
"maneuver" : "turn-left",
"polyline" : {
"points" : "wvkmEnawnU@jF"
},
"start_location" : {
"lat" : 33.816278,
"lng" : -117.9242395
},
"travel_mode" : "DRIVING"
},
{
"distance" : {
"text" : "92 ft",
"value" : 28
},
"duration" : {
"text" : "1 min",
"value" : 6
},
"end_location" : {
"lat" : 33.8165219,
"lng" : -117.9253712
},
"html_instructions" : "Turn \u003cb\u003eright\u003c/b\u003e toward \u003cb\u003eSouthwest Pl\u003c/b\u003e/\u003cb\u003eWest Pl\u003c/b\u003e\u003cdiv style=\"font-size:0.9em\"\u003eRestricted usage road\u003c/div\u003e",
"maneuver" : "turn-right",
"polyline" : {
"points" : "uvkmEzhwnUUE[C"
},
"start_location" : {
"lat" : 33.8162692,
"lng" : -117.9254181
},
"travel_mode" : "DRIVING"
},
{
"distance" : {
"text" : "394 ft",
"value" : 120
},
"duration" : {
"text" : "1 min",
"value" : 27
},
"end_location" : {
"lat" : 33.8165324,
"lng" : -117.924072
},
"html_instructions" : "Turn \u003cb\u003eright\u003c/b\u003e toward \u003cb\u003eSouthwest Pl\u003c/b\u003e/\u003cb\u003eWest Pl\u003c/b\u003e\u003cdiv style=\"font-size:0.9em\"\u003eRestricted usage road\u003c/div\u003e",
"maneuver" : "turn-right",
"polyline" : {
"points" : "gxkmEphwnUAcG"
},
"start_location" : {
"lat" : 33.8165219,
"lng" : -117.9253712
},
"travel_mode" : "DRIVING"
},
{
"distance" : {
"text" : "0.1 mi",
"value" : 164
},
"duration" : {
"text" : "1 min",
"value" : 67
},
"end_location" : {
"lat" : 33.8179984,
"lng" : -117.9240946
},
"html_instructions" : "Turn \u003cb\u003eleft\u003c/b\u003e onto \u003cb\u003eSouthwest Pl\u003c/b\u003e/\u003cb\u003eWest Pl\u003c/b\u003e\u003cdiv style=\"font-size:0.9em\"\u003ePartial restricted usage road\u003c/div\u003e",
"maneuver" : "turn-left",
"polyline" : {
"points" : "ixkmEl`wnUI?C?MEY?c@@E?G?EBKDk@?Q?_@?mAA"
},
"start_location" : {
"lat" : 33.8165324,
"lng" : -117.924072
},
"travel_mode" : "DRIVING"
},
{
"distance" : {
"text" : "0.1 mi",
"value" : 163
},
"duration" : {
"text" : "1 min",
"value" : 56
},
"end_location" : {
"lat" : 33.8179846,
"lng" : -117.9223305
},
"html_instructions" : "Turn \u003cb\u003eright\u003c/b\u003e onto \u003cb\u003eW Ball Rd\u003c/b\u003e\u003cdiv style=\"font-size:0.9em\"\u003ePass by Staybridge Suites Anaheim At The Park (on the right)\u003c/div\u003e",
"maneuver" : "turn-right",
"polyline" : {
"points" : "oalmEp`wnU?iB?k@@iA@_C"
},
"start_location" : {
"lat" : 33.8179984,
"lng" : -117.9240946
},
"travel_mode" : "DRIVING"
},
{
"distance" : {
"text" : "0.2 mi",
"value" : 343
},
"duration" : {
"text" : "1 min",
"value" : 62
},
"end_location" : {
"lat" : 33.8206848,
"lng" : -117.9230995
},
"html_instructions" : "Turn \u003cb\u003eleft\u003c/b\u003e onto \u003cb\u003eDisneyland Dr\u003c/b\u003e",
"maneuver" : "turn-left",
"polyline" : {
"points" : "kalmEpuvnUAs@_@Bk@HA?UFKBa@JiDx@i@LIBk@TA@A@GRC?SFEBsA`@"
},
"start_location" : {
"lat" : 33.8179846,
"lng" : -117.9223305
},
"travel_mode" : "DRIVING"
},
{
"distance" : {
"text" : "22.3 mi",
"value" : 35894
},
"duration" : {
"text" : "25 mins",
"value" : 1482
},
"end_location" : {
"lat" : 34.0256221,
"lng" : -118.2059515
},
"html_instructions" : "Slight \u003cb\u003eright\u003c/b\u003e to merge onto \u003cb\u003eI-5 N\u003c/b\u003e toward \u003cb\u003eLos Angeles\u003c/b\u003e",
"polyline" : {
"points" : "grlmEjzvnUu@MKCIAWIcA]{@[C?SGSGMEQEKCSAEAMAU?]@C?E@E?MBE@I@IBKBA@UJE@EBIDGDKF}ArAs@l@y@r@y@r@}@v@WTs@l@qAjA_@\\]p@}ApAg@b@iAdA}BbCSTYXw@z@uC|CsAxAOP[^cBlBw@x@qBtB}@~@_AbA{@|@s@x@KLEBEDSPGF_BhCa@r@Wh@Wf@Sf@c@jAOb@K^ITW`AMd@_@xAWnAU`Bm@jEi@`Eu@hFOv@GXWlAMh@e@|AM`@M^KX{@vBiB`EaGrMkE|JaEjJgB|DoApCyCzGuBxEy@lBu@~AWl@Q^Uf@_@t@a@r@a@r@A@Yd@y@zA}@|AQZYd@[h@U`@QZ[l@c@|@_@v@{@rBUn@s@hB_BjE_BtDSd@uCfHk@zAu@hB[t@aChGQf@{CjHyAjDiAhCoAxCmDhIkApCkAdCEFoA|B_@j@Yf@gA~Aa@l@g@p@W^a@j@GHgAtAu@dAeGlIe@z@?@A@IPKRA@?@GJSd@_@~@Qh@Qh@WdAADIb@YrAe@~BGREVSbAU~@gAdECF_AzE?@g@zBADWbAOn@}@hCQh@k@~AcB~DYp@Wh@qAjCc@x@QZgBzC_BpC[f@y@tAKPgChFQ^{@jBSf@c@`AyHhQsAbDmAjCKV]v@uBxESd@aBpDoBnEsAnCABGHGNINEJCJGJGRc@`A[t@c@`AoAlCmBjEMZ]t@_@z@w@bBe@|@c@r@OTOTU\\CBc@r@a@h@g@n@e@j@Y^QRi@l@_@b@MPA?_@f@GFw@`AiBjCe@r@S^a@t@Ub@g@fACDq@xAm@tAqAxCiBbEg@lAcAzBYl@Wn@GJIRaBxDuCvGCFSb@oDfIMZ_ArB{@lBm@tA}@rBcAzBg@hAiAjCkBdEqA|CiAtB_BxCaAfBuAhCS`@s@xAo@xAw@rBa@fAIVq@xAcA|BGLgBfDYh@GJGLMVGNsA`Dc@bASj@y@rBa@~@aA|B_B~Da@bAsAhD?@uCbHSd@O`@i@nAm@vAsA`DmB`FIPwC~GiF|Ky@`BGJmBvD{AzCqDjHiBnDkCpFeGlMmCzFkAhCcArCcBxDGLoBjEaAhBmAzBa@t@a@t@mAlBmAlBaB~BW\\qAdBi@p@m@r@mBtBaChCmChCEBwBpBeBfBeAdAKLmBlBgBbBsAnAeAdAQVi@n@kA~A{@dA_@h@e@z@Yf@[l@IN[n@sAvCw@|AIPm@vAq@|AiAfCcAhBq@hAg@p@gBnCcBzB_ApA{D`EkAbAeAx@QJYVYVgDzBw@f@w@d@{CnBmAx@IDwA~@OJQJEBQJCB]NqD|BiBhAwEzCWN}IrFyEtC]T{D`C{D|BwA|@{BvAg@Xg@Ze@XcBlAsE~CkD`CgA|@eDlBoG`EcAn@SLm@^wAz@a@Ve@ZiEdCqAt@?@wBlAGBoBjA}BrAKFGDu@b@k@Xi@XWNcB`Aa@VoDvBwCbBcAn@}@h@yBlAeAj@[RMF_@Ru@b@GDm@\\yAz@SJc@VeAn@q@`@}A|@sBjA{A~@cDjBkAp@cAl@gAn@wCdB_@T_@T_Ap@y@n@g@b@iAfAa@`@UXmAvAa@j@QVwAvBk@|@}A`CeA`B{BhDeA~A_@l@iAfB}@rAeEpGo@bAMPSZCBuAvByBhD_B`C_AxAaJhNuEhHSXSZg@n@MPEDe@j@_@^[\\kAdAe@\\UNOLs@d@CB}@j@sAr@e@TC@MD[Lq@Vs@R_B`@iE|@WFqDr@sAZs@NWDcB^ODc@HcB\\a@JaAP}A\\c@Jg@JgAZi@Nu@XiAd@gAh@eAl@MHKFe@TGDSL{@h@i@^s@j@cAr@}B~A[PeAr@SNyB|A_@\\cAz@qAnAoApA_A|@{A|AYX_A~@}@|@eAbAs@t@uBtBoBpBmAlA{AzAeBdBkAhAeAhAg@f@KLOPs@|@a@n@QXq@fA{@vAy@tA]l@[b@w@pA[b@a@d@]^[\\w@v@YT?@CBKJA?ON]\\kClCmAlA}@t@{@v@A@wEjEoJbJeJ|IQNoBlB]Zc@^ED]Zo@n@q@l@MNc@\\o@d@m@`@y@d@IDaAh@q@Xq@Zq@^i@ZC@k@\\cAt@}@t@CBoBjByCpCkB`B}AzA_CvB}AvAu@r@cA`AoAtAiI~JaCtCwAbBa@r@[d@i@|@S`@Ud@aAnBo@fASZQVcAnAeAnAi@h@UTs@l@mD|C_@\\MJYVg@f@g@j@e@p@[f@W^k@dAy@lBeAxCYr@w@zBCH}@jCkAbDoElMcA|CYfAW~A}@nECRk@~B]`Ae@hAg@dAq@pAOXIPA@A@Ud@MXGNGNCFAB[t@ADADi@~ASl@Of@Wt@cAbDaAnCkCrHa@hAA@GNq@lBe@vAYbAK`@WbACLMt@m@vDOrAKrAGjAEdBCxB?H@|J@zM?lB?nE?rEAbD?@Ct@EhAA`@C`@It@MrAE^Ih@Mz@QfAKh@Mf@Qt@Of@W|@Sp@wBpGiAfD{@jCsA~DuBlGAFaB|E_E~L_@fAMb@_@rA[lAELI\\M`@"
},
"start_location" : {
"lat" : 33.8206848,
"lng" : -117.9230995
},
"travel_mode" : "DRIVING"
},
{
"distance" : {
"text" : "11.7 mi",
"value" : 18809
},
"duration" : {
"text" : "17 mins",
"value" : 1003
},
"end_location" : {
"lat" : 34.1294658,
"lng" : -118.3475583
},
"html_instructions" : "Keep \u003cb\u003eleft\u003c/b\u003e at the fork to continue on \u003cb\u003eUS-101 N\u003c/b\u003e, follow signs for \u003cb\u003eLos Angeles N\u003c/b\u003e/\u003cb\u003eCivic Center\u003c/b\u003e",
"maneuver" : "fork-left",
"polyline" : {
"points" : "cstnEdbnpU@d@?@?@?@CJELg@xBW`AMf@Od@Ut@cArCe@xAq@lB?@A@s@tBkD|Jq@nBc@rASh@KXY|@Yx@Wp@q@rB]bAm@`BUj@a@jAWp@w@hBOZS`@[p@INCFGJOVOX]j@]h@MTg@r@W\\UZe@j@KLGDABC@C@SHiAhAA?EDw@x@[Zs@h@m@`@]TKDQLQF[NEBSJE@KDMDiAXC@]JWDg@FOB]Dy@Du@@u@As@EoBWy@Gu@Ek@?MAQ?_@@[BmAFy@Fa@@U@a@?W?a@Aa@CC?]C]Cm@KWCKCmASyC]}CU]Ak@Ae@?wA@iB@oC@k@?}AFi@@uAJk@Di@Hm@Fm@JyAXi@LcBd@_A\\c@PsAh@UHeAh@_@L]Nc@Pc@Pe@R}@\\{An@WNUNOL_@XMNIJQRQVGJAB[j@[z@A??BEJOd@CLAHCJAHCP?HCNAPARAb@Er@?HAF?DAJ?DADG^AJC^AFATCJAPOnAU~BKhAEZC`@CNMrAKpAQzBMtASnCInAK|ACRAT?TCv@ARCVEZIdAGbA?BCZEbACj@CdAAz@@\\@NBb@Br@@T?X@VAT?RAPAZAVCTEZCNGZG\\I^GPCJUl@Wn@GNIPOZOVa@v@_@n@{@~AYh@[j@Yf@]n@mA|Bk@fA_@p@k@dAS`@o@jA]n@QZ]n@_@p@KNs@lAMRKP]h@w@pAk@v@[`@Y^_BtBST_@`@i@h@g@d@g@b@URUPUPo@h@gA|@gA|@k@d@eBvAEBi@b@EDc@\\UPWTe@`@YVSRQNY\\QTY^UZW^g@x@]h@GHq@dASXW`@[`@S\\e@p@aA|A{@rAm@|@eA`Ba@p@OXg@`AMXk@nAO\\Wr@Wp@c@rAELMd@K^_@tA?B[nAi@tB[nAiAnEw@~CQp@e@lBCDg@pBg@pBMf@Mf@g@pBa@tAq@vBi@|Ai@zAc@nAc@nAc@pAq@pBa@lAm@jBaA|Ca@pAABCHCJIViApDk@|AIRu@jBg@lAc@fAi@bBm@nBa@|AYdAKb@Mj@ETu@vDa@zB]~Au@~Dq@rDS|@Y|ACHAJMn@I`@I`@If@YjBm@bE?@Kr@?Dc@`Dg@jDYpB[pBc@fDMjAShBO~AQtAIj@Mx@[hBId@Ot@c@hBKf@Wz@c@lAKZYp@k@pAYr@k@jAMZeAbCuAhD}@dC}@`Cm@dBQd@Up@wB~FSh@g@rAEHSb@_@x@?Ba@t@KRSb@Wd@CD]n@c@x@o@bAiAjB_@l@ILILABMTKPMPqBfD{AbCu@hAOVmAjB[b@g@l@g@n@i@f@k@j@k@d@e@^m@b@_@V_@VC@ABSPQHUL{Av@iExB_@RyAt@u@`@k@XUN[P]To@d@URc@`@g@h@WVe@l@QTOVMR_@l@q@lAAB[l@q@lA_AdB_@r@}@`Bc@v@_A|As@hAKNMPg@n@c@h@QPEF_@`@_@^e@b@YTq@j@YPaAt@eAj@IFq@\\kB|@gKfFa@Pe@Re@Vs@\\s@b@[R_@X[Vg@f@[Zc@h@UXQRU\\g@~@i@dA]|@Y|@]tASbAMx@E`@E\\Ix@Cn@E~@?^Ah@AvAAv@?d@A|@Ap@?@C`@Ab@I~@ALCPE^G\\CTGZGZK^Kb@Oj@k@zAO^Yl@Wh@]l@u@vAu@vAOZEFU`@]p@Uf@s@vAqDnHu@zAyBhEQXkA`Cg@|@Ud@]l@KN]j@Y\\iAvAKLQNCD]XMJg@`@[Re@Zu@`@q@XQJQFQF[JQDKBGBu@PaAT_@Js@Ne@LiDv@m@T?@oDr@iB^sATw@NQBKBiANaB^gAVc@PyAh@kCjAa@ToAt@qBlAqC~BkAjAgBlBYXCFEDEFCB?@KLGFKJq@x@a@h@i@n@QXSVSVcAlAY^Y\\[^UXWZc@f@g@f@ONg@b@KHMJk@^A@}@j@eB`AWL[RYRWPQNQLa@\\ONQPi@h@iBjBEFMJWVMNYVUV_@^uAvAo@p@"
},
"start_location" : {
"lat" : 34.0256221,
"lng" : -118.2059515
},
"travel_mode" : "DRIVING"
},
{
"distance" : {
"text" : "0.1 mi",
"value" : 180
},
"duration" : {
"text" : "1 min",
"value" : 11
},
"end_location" : {
"lat" : 34.1307998,
"lng" : -118.3485738
},
"html_instructions" : "Take exit \u003cb\u003e11B\u003c/b\u003e toward \u003cb\u003eUniversal Studios Blvd\u003c/b\u003e",
"maneuver" : "ramp-right",
"polyline" : {
"points" : "e|hoEfwiqUAACAA?A?C?E?A@C@MHURYXA?IHa@^WV[VKJEDGFIFIFKHCBA?A?A@A?A?C?CA"
},
"start_location" : {
"lat" : 34.1294658,
"lng" : -118.3475583
},
"travel_mode" : "DRIVING"
},
{
"distance" : {
"text" : "0.3 mi",
"value" : 447
},
"duration" : {
"text" : "1 min",
"value" : 32
},
"end_location" : {
"lat" : 34.1338819,
"lng" : -118.3515888
},
"html_instructions" : "Merge onto \u003cb\u003eW.C. Fields Dr\u003c/b\u003e",
"maneuver" : "merge",
"polyline" : {
"points" : "odioEp}iqUMNQJYRGBWNe@Zk@^}@j@SJk@^EBKJIHMLKLUTU\\Q\\Ub@GJKPGJGHCFEDCBCBCBC@EDEBEBC@EDCBEBEBCDCBC@CBEFCBCDEDEFINUd@"
},
"start_location" : {
"lat" : 34.1307998,
"lng" : -118.3485738
},
"travel_mode" : "DRIVING"
},
{
"distance" : {
"text" : "0.1 mi",
"value" : 234
},
"duration" : {
"text" : "1 min",
"value" : 32
},
"end_location" : {
"lat" : 34.1358593,
"lng" : -118.3511633
},
"html_instructions" : "Turn \u003cb\u003eright\u003c/b\u003e onto \u003cb\u003eUniversal Studios Blvd\u003c/b\u003e\u003cdiv style=\"font-size:0.9em\"\u003eDestination will be on the right\u003c/div\u003e",
"maneuver" : "turn-right",
"polyline" : {
"points" : "wwioElpjqUQNA@A@A?A@C?C?A?A?A?C?CAA?CAAAA??AA?CAEAC?A?A?A?A?A?A?OQCAAAECUMGCGCECGCGCICICICGAECKACAGAIAGAGAG?IAQAWAIAI?K?I@O@IA"
},
"start_location" : {
"lat" : 34.1338819,
"lng" : -118.3515888
},
"travel_mode" : "DRIVING"
}
],
"traffic_speed_entry" : [],
"via_waypoint" : []
}
],
"overview_polyline" : {
"points" : "qukmEvvvnUz@l@\\n@H|@@x@?|AOF?LCFQDeB?@jFUE[CAcGM?qACeAHq@?mAA?iB@uB?sDcBTaGvAy@\\KRYJsA`@u@MUE{CcA{Be@aBJkAf@{KlJqBhB]p@}ApAqBhBqCxC{HlIgExEwJhK[XaC|DgBdE}@zC{ApH}CnTsAnFcBrEyV~j@aR`b@mGfLoElIeFxMuH~QeFpMoKzVkIhRqEpHoO~SgAtBwAxD}@bEgAnFaDhNaAfEkCbIgFfL}FbKiFxJeCtFqVzj@{Ox]cCpFiB|CyEnGyDtEeEtGsBjEoKfVwOh^{Ol^aI`OoDhIaDvHqCjFeGzNqMx[yGjPaDpHcH~NcKjSiSjb@{FdNqDtHoBpD_HpKaEhFcKlKoHlHoJfJcElF{BzDqDtHsDnIeGtJcDlEgGdGkCtBsRdM_QrKyd@dYyE|C_K`HmFjDuK~GiJtFsMvH}^`Twd@dXyDlCiDfDyErGkIjMeOlU_]nh@oAbBmDnDkAz@iEhCsAj@eBj@iH~AqIfBoDt@eHxA}DbA_C~@mCvAgAl@qM|IqFfE}H|HeQfQsItIwBdCmIbNmEzEoKbKsb@ha@eC~BoCtBiIhEqDlCsMzLwIdIsRnUwGrLeE`FwG~FoAjAaCdDeBrD_BlEeEtLsGjRq@fDaAbFiA`EoCzFMTuA`DmDzKqIdV}@hDoAnIS~CI~EBbZAtTKbDa@jEu@vEgAbEqGvR{Prh@y@zC@h@}BzIoLb]_FxN}BjGwBxE_C`EuCrDqFzEqDrBkEbA}CPsGg@aCGcETqBBeBIoBWgFq@{DWsG@cIJyEb@uGxAuJ|DcFrB}AfA{@fAaAvBc@bBSrDuAbN_BhSa@|GUhDOpFLbF[vD]zA_A~BmFxJeIjOgEjHyCjE}DvEqIfHyGpFeB|A{AnB_FpH}IlNqBhEyAfEeFdS_FxR{B~H{CxIoGzRcCrHkCtGsCvJuA|G{E`W_C`OgEt[y@zGyAnHsAlEkCbGgFnMsC~HyDfKuAvCwF|JoEnHoFpIuChDqFjEqOfI{BpAqCdC_BrBaBrCcKvQ}DvEkCvBcEfC{PjIiDlB_CtBaBtBqAdCw@zBeAtFYfEExEUjH}@`FeBtEaDfG{JbS_GbL}AnCaCrCwAlAiDjBqAf@wG~AwElAoDt@gGhA_GjAkH|CaEbC}EjEkCtC}BrCwFdHyBdCqAhA_HdE}AlAuDvD_FbFw@l@M@gCzByAnAQ?iFjDkCvBeBzCg@`@e@^}@xAc@TUEQEYQcC_A}AMcA?"
},
"summary" : "I-5 N and US-101 N",
"warnings" : [],
"waypoint_order" : []
}
],
"status" : "OK"
}