3

I am making application that will display driving route from point A to point B.
I am using IOS map kit.
First I get route information from google like:

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

And this returns me XML I parse longitude and latitude from "steps" from returned XML and use it to draw route on the map.
Problem is that this draw route but not complete.
I think that there is not enough information in returned XML to draw complete route and I wonder how is that possible.
I type this two locations on web google map and it draws route fine. SO it must be that this XML doesn't contain enough information in it or I am doing something wrong here, am I calling the right web service?

When I pass point from bellow application crach on this line:

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

with error:

**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

But this one works:

}~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
1110
  • 7,829
  • 55
  • 176
  • 334

2 Answers2

7

this exception occur becoz array goes out of bound....in your decode method just use simple parameter string....their is no need of method "replaceoccuranceof string method"....just use simple string without this method........

[encoded replaceOccurrencesOfString:@"\\" withString:@"\" options:NSLiteralSearch range:NSMakeRange(0, [encoded length])];

remove above line from your code....no nsrangeexception occur......

0

I found another way to get coordinates for route I call this service:

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

it returns a file with all values

1110
  • 7,829
  • 55
  • 176
  • 334