谷歌API方向-绘制路线无效。

3

我正在制作一个可以显示从A点到B点驾驶路线的应用程序。
我正在使用iOS Map Kit。
首先,我从谷歌获取路线信息,如下所示:

http://maps.googleapis.com/maps/api/directions/xml?origin=44.00771,20.911982&waypoints=44.814785,20.419936&sensor=false

这个功能会返回XML,我从返回的XML的“steps”中解析经度和纬度,并使用它在地图上绘制路径。
问题是绘制的路径不完整。
我认为返回的XML中没有足够的信息来绘制完整的路径,我想知道这是怎么可能的。
我在Web Google地图上输入这两个位置,它可以很好地绘制路径。因此,这个XML中可能没有足够的信息,或者我在这里做错了什么,我是否调用了正确的Web服务?

当我通过下面的应用程序传递点时,应用程序会崩溃,出现以下错误:

do {  
            b = [encoded characterAtIndex:index++] - 63;  

出现错误:

**Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[NSCFString characterAtIndex:]: Range or index out of bounds'**


aprkGmus~B?UHk@b@{BTkBL}A@_AGk@WiAc@kBUaBOgC?KGiAMmAWsA_@uAYmA_@qA[oAI[Uy@IUQg@_AaBs@y@kAk@_Bi@y@]m@c@Y_@[c@IOOUMWCEiAsAy@{@aCiBqCkBiAeA_BkBkBiByDeD]YyDgDmBqBq@s@sA}Ak@s@cAgAiAqAcBcBsLqJmI{Gq@o@cAu@s@s@gA}@MIk@k@a@_@gAaAcPiRUKY_@{BmCaKcLoQqVEIe]kl@eJqP{Pk[sWoe@cEiE_@a@sH_I}IiIGEaFoE]YkAcAqF_FeFwEcEuEcCaDaDaFmAwBwAoCeDqHiJsTkDyHmAaCg@aA}BsE{D}GsGuJiIoJk@q@oB{ByCmDmHaI_DmCcBgAYOsBaA{@YeBo@aEoA{D{A}HgEaEkCeDeCeC}Bs@q@sEqDg@a@aFuBkFaAiEOaHBeHg@mBi@kCq@c@Mu@UwE}A]IOEe@OgIeBsIw@}GMuCJoB\kC`Am@`@iBjAaFpEoCrC{AzAgB|AqBhAsDfAyDRuD_@gCaAiCgBgCuCY_@qBqCSYIK{@oAIIiAmAYYcA}@cCmBmCaBiAe@yDiAuDs@oDw@_Bi@uCu@OGME_Cu@{D}AuDkBcDkBaD}BaDeCsCmCo@u@wGwFQMiBgBiDeCkC_BeImEaIuCcCm@{A[uIkByT_FkImEk@Y]SoDcCmFiFeIeKa@i@iEeFsDwDkFgEqLwHwC_BQKECkJoFsBoAuAiAu@cAc@o@]k@cAwBKYi@wA?AACi@_CQiAMwAQeEDpAGqDFgB~@sJo@tE~C_SlAwHj@eDxBsMvAwIZkB^yBfC}OV_Cw@fG`A{IRuBN}GE}DMoCQmC[oCoBuK`AdFiBkIkAoDU_A]sB[sBSeBAw@Au@Cq@@sA?Y@EBaBX}Dr@oHt@iIDm@Fm@f@iGLsAP_C^aETaEP_ELaE@AJcEZgGr@kHZqBr@gDpAeF`BwDjBsD|AiCFKfCcEzAyCfAwCn@}Bf@_CFg@Hi@HiANeBHcBBsB?_A?cAG_BGaAIcAa@cDQ_Ba@aB}@kCkEqIwC{FwCaGqB_FyAoEMc@s@gCq@sCkAaGaA_G

但是这个有效:
}~mlGokz_Ca@sCy@qEOq@Ic@Qu@Yg@Ua@]We@OSEUAWBYBYLWVe@n@O\G`@Ut@Kd@Kz@WtAYr@[p@y@fAeDnB}DvBqD`B}At@}BbA}Bz@mE|AoEnAiFnAcFdAsF~@uBZG@A?gBNqJv@mFRmDFeD@qB@aFQgCEw@A_He@uDa@uEg@cBU{Du@_FeAyC}@{@Yy\oLa@O_Eu@QCuAk@mJkA}Fo@yFQaHIaHNoCNqCRaHt@yGfA{I|BaJ|CcT|J_@JyE~AcEbA_E|@}Fv@_BLoBPsERqC?eGIgGc@sBQwCc@kCk@iCg@gIkC_Bm@cGkCsB}@uHgEsAw@wD_CqFyDQKiH{E_FgDkHwEoG_EgDaBqCqAeG{BqDcAcAYiASaCc@gCW_CWoGUi@?Q?aBB[@m@@cDJyC\yEr@}Cn@kCt@iBl@mDvAaBt@[NMDGDg@TyCxAuJfF{KfFMFmFzB}@ZcBh@{LpDsLhCkHdAuEl@kIz@sSzAA?]B_AHkIn@kF`@qHt@aGp@cFn@mJzAYFmCf@mCf@wCl@cE~@iAZC?wElAeG~AmEtAuC|@gKrDaJvDgFzBg@TC?[NgFtBuMlFg@P[JcMrEc@PoGrBA@kCz@sJvCkNxDaB^sHjB_N|CwQjDcBZeC^{ATE@_IjAgPrBoEf@qCZoWnBsFb@oE^qHz@C?iBRoDf@gItAeB\kDt@iE`Aa@JkHhByQhGkLbFgBt@{DtBA@yGlDcLxGWNmC~AE@WTaChB_KhHKHu@h@UPiRxN}GfFkD`CeKpGiAh@uC~AcEpBqAp@wB~@kCjAmDvAqAd@{@ZoBp@{EvAoA^gCn@sA\qFlAqCf@cC\mDf@qEf@eCVy@Fu@FiG\mCJaABi@@E?uBDgC@qE@gCE{FMmFU}Ho@mDa@oFo@cFg@kBGqDEw@?oCHwD^qBVgCf@GBmCp@cFfBgExB}DdCgDlC_GbF{AlA}CpB{@h@iFdCaGnBuFfAoC\oEVeFAaFAuD@qB@kCL_CP}Cd@gDt@qBj@cE~AaBv@}A|@wCjBqA|@y@n@y@n@y@p@y@p@aAv@aAv@cAt@eAv@_An@g@Zi@Zk@Zm@Zk@Xm@Vm@Vm@Vm@To@R}@V_ATUFUDw@Ny@No@Hq@H_@Da@BaAFu@Ds@@aA@_A?cACcAEu@Eu@G_@E]E_AMq@Kq@Mo@Oq@OoA]i@Og@QaDeA}KkDuCUqECsELcCP_Ej@cEbAmErA{HtDqFzDaIdHiDfDy@x@k@\w@f@u@d@cH`DyDdAsDn@o@JsFx@yANcFf@wFbAaBb@_ExAcClAwAv@WReD~BeFhC}BfA}Bv@mDx@uAXwCVqEPwABG@cBNaBRqDt@kBj@iDrAiB`A_B~@}@r@cAt@qAhAkAlAuArAkAfA_HdGgAn@uFxCcAf@aAVm@XyAd@eFjAaGj@yBJaB@yCGoCIiBMs^aCe@EsITeCj@kCj@qLtFa@XuHxFyGzG_HbJ{H`K}ChEGH}B`DyFjHwBlCsBbCsBtBmBdBuAjAcAx@uCdBsAr@sAl@qBt@yA^cCb@yBRgDHcC?wEk@aDi@_AW_B_@qCi@iCYkBKqEIeFj@w@HwAX{A`@yAf@UJu@XiAh@mC~AgBpAmC~B{BjCmBnBaEfFuMtLiWdPm@^EBc@ReFpBcBl@aCx@cFrAmBd@yNfCmFnAqE`ByDjBkGjEqGfGcBrBsH~I_@b@uCtCcEdD_E`C}C|A_DnASHwBx@sCzAgBhA}AhAiAbAgBrBw@~@qB`D_A`BuArCw@jB[x@c@hAUj@IV_@~@[x@cAxBaAtBqA`CkArB}@xAaB|BoA~A{AjBmAxAeC~B_BrAwAhAYTiDvBiDjB_DrAUJUHSHkBl@wFzAgEn@yB\aBVyFj@qD`@qE`@yEh@kDp@{FhAa@JyEfAiLpDaD~@}HvBwCl@iBZkB\m@HE@q@FqD\sFXmADiADwDBwGGgEEkDEgBBgDNkCTgBb@QDuBj@iBp@yAj@_DfBc@ZYRKHYPYV{BlBuBtBaBrBUVkBtCaB|COVy@hBk@vA{@|Bg@|Ak@lBa@vAYxAu@xDk@fEq@tGW`FQfH?jBAx@?z@BvBB`BD~ABl@Bx@PdE\nGr@nGdBzInBjJhDnMbA~Df@vBzGra@tB|PxArKvApLxBlMpAbH|EzTlF|Ux@fD|FbV`BrKp@tLHrG@d@B`K?XeCjViEnS{AlHmAb[m@~Vi@jRa@fDuBnPqCxLiEbRuA|DwAfHaBrMy@~M}AvMO~@QtCsB|JoCxJuKtUyEfHgBhE{ApEeAxF_AxGg@fGS`HGdKXtHl@`MvAfSl@`DvCzRZdEx@nF|ApPZhGj@dKTnHTlHQt]WrOeA~f@DrD?JHfCLnE\rOF|@pAlUf@dEFd@nJnu@b@vDxDb^dBj\RnQKxWErQ?vGZhJh@lIj@jGjA`KfDhQpIjr@d@hH\jFj@xJvAzc@H~GIjUCbG?xBArBc@dTqB`]UjJEjDHrDf@pHzAtKbB`IbCzGlDhIxDpJbApCz@dDhDpJr@rEZnEZjGf@zOVtHN~HdA~TjBtR~Gdd@`A`Ip@xGr@jIVfEPlHIfJ]pNc@|E[hEWhEQnF@zMjAdTbAfJh@`Fd@lFl@bMHpC@v@@xACxK_@lNUvD[tD]jDO|AW`Bg@fDg@|Ck@zCgB`H}BdGcDjGEFiChEqKfLkCpCeBfBcQvJsDlBcFlByE~AkS~G_U|IaMbFkEbBcDfAiCr@aBRsDJ{HWoHYq]uAeFH{E?yD?wGOgFe@uFcAwDsAcG}BICgEoAcEk@_EWqDT_Dh@aCx@mEhCoBjAwBrAuDlBeD|@_CVwBNwE@gGHoBJqAX_@HiGdCwEtBcEpAiBXyA?oEs@iDu@}ASoAOgDI_BBqBHgCj@gCz@iDdAkDvAyDlBwBlAmDpCuAhA_KbK}BnBoB`B{EpDcAx@_@TwBdA_Bn@}Ab@yBl@q\|C}F`A_ErAgFhCqAjA}@p@g@b@gA`AkArAqB|BcCbEeDfHaFtL}CxHuBxDyEvI_AbAeCfCSPQRKJiDfDqAjAaBdBaJtHwHlGoDjCkBpAuFbEuCdC_C|By@~@kAzAs@~@sAzBi@`Ac@`A_@~@a@lAo@nBi@hCUpACXWpB?@In@KhBKpEA|DA|C?rB?lEKrCQhCu@lFi@hCe@dBOh@_A`CmAvBgBfCeCrCgBbBeCtByCzBuDzBmAn@cCpAsD|AiEtAgDz@qCl@wEp@eGd@kAFuSVoDLiBHyBRqDb@qCn@aE`AuDpAiCfAwBbA}BrAw@d@cAn@mAz@gCpBiB~AwBtBcCjCaAjAy@bAcB~B_AtAoA|Ag@z@wAnCw@zA[n@wArCuAtCaAlB_DrFwD~F_GrH}ElFWXSTcCpCmAvAsCrDoDdF{FpJ{E~IyBrEcBrDyD`JkCzFQf@GR_@`Ci@~Ci@jB_AnBiBjCyAtBILqAvCaD|HcDzH}BrF_CxFuBhEgAhB]h@CFQToAfBOTqCxCuEvDg@ZmCzAcC`A{Bj@OBqBZa@Ds@DaBDy@?cBIeAKeBYaAUy@WeA_@cAc@s@]UM]S_Ao@]UcBuAa@a@{AyAmCyCOMw@_A_@c@GI{@_A_BiBqAmAs@i@k@]u@a@}@WaASi@Ig@CoA?g@@_@Fu@L}@Z_@P[Lk@\q@b@c@`@e@d@uAbBoAbBc@f@i@d@a@Zc@Z{@b@a@NoAZkARq@LoAPq@Ps@XmBdAcBdA_Ah@IDc@Tq@Ts@Ry@Le@DS@cAA}@Cy@KwBWwAOaBEmAFk@F_@Dy@Rm@TmAj@u@d@s@j@qApAu@~@Yb@Wb@CBQVSXy@nA_ArAq@bASZsAxAc@f@YVo@d@uA|@eAf@oBv@gA\w@RiBb@qAZuA\gA`@u@Xi@XOHc@VmA~@q@p@q@p@SV[`@q@bAQXk@fAMRg@jAg@zAa@lAaB|EeB|EiApCq@xAkAfCi@|@mAnBkAfB}@fA]^gAnA_AbAi@h@}AnAmA|@mCfB_CxAiDrBaD`CwBnBQNqBxBGFWXWX{C|Dq@~@m@bAiBzCwBtDiCfFS`@o@vA_CdF}@tBaAbCu@nBcArC}@tCa@pA]hAIZc@|AAFu@`D{@nDa@~Bg@hCCHg@rDYjBId@g@zDKjACXCLUbC]tEa@`IUnEAb@c@nIWlF]pI[rGMjDSrEUrDUnCoA`Jo@`D]zAaApDuBfH{@pCa@xACDcArDw@hCu@fC]fAs@~Bs@~BcBtF_AxCiAzD{@jCm@fB{BzFaEtIyCnFyFvISZKPU^KPKPWb@ABS^SXABkAfBqAzBGHEHILCDyAzCiBtEkAtDs@fC[pAm@nC_@lBYlBq@dFw@zFq@hF]zBGb@EVEVKn@c@rCa@bBWfAe@hBs@rBmAbDOZa@~@ITyAjDUj@e@hAMXQb@EJUf@IPGPe@fASf@EJIPaBxDWn@eBdEiBlEe@fA{ArDM\]v@sDtIkBtEA@gAnC]z@iAjCm@xAoAbDMZ[x@CD}BdGiAdDSj@Ob@]`AMZk@`BkFxNm@dBw@|BKXITEJ[`AYt@oBxFiBlFABw@xBKZ
2个回答

7
这个异常是由于数组越界引起的。在你的解码方法中,只需使用简单的参数字符串,无需使用“replaceOccurrencesOfString”方法。只需使用不包含此方法的简单字符串即可。
从你的代码中删除上面的一行,就不会出现NSRangeException了。

0

我找到了另一种获取路线坐标的方法,我称之为这个服务:

http://maps.google.com/maps?f=d&hl=en&saddr=44.00771,20.911982&daddr=44.814785,20.419936&ie=UTF8&0&om=0&output=kml

它返回一个包含所有值的文件


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接