frederickjansen / polyline

A Python implementation of Google's Encoded Polyline Algorithm Format.
http://goo.gl/PvXf8Y
MIT License
114 stars 19 forks source link

IndexError: string index out of range #4

Closed beyoung closed 7 years ago

beyoung commented 7 years ago

string '_jq~DcfwbViCeLy@wDcBgEMYrFqDrFmDfDyBnBqAbHiETMfFqCTMpIaDFCHGzBkAjB_ArAo@zBo@xCi@bDi@nEm@zC%5BpCUt@CrAGNABMNaABO%7CA_ODk@lB_Th@GJeDI@kDgDSUe@c@kHgHwBuBMKa@@@%5BHUVo@pEiLVu@xCqHFMTg@JWLc@Nc@D@Dk@Ci@Go@aAcHCOMq@c@kCqAgIMu@AiIc@iCO}AEyBDcC@%5D%7C@gJdBwOHy@fByARSVSlEyDtBaBfBwApAcAx@o@r@k@%7C@k@pCoBJIlMoIfIcFvA}@nAu@j@@PIlAw@xCiBl@@zFoD~BwA~BwAzFoDlFgDdC{AHGpBoAvA{@t@e@xJeGtFmD%5CQJIpBoAb@W%5CUf@@HKhB@f@e@%7CFyDJGbKqFhL{G%60PwInBgAtEaBl@MfDs@tD{@tCo@bBk@%60Bs@dAs@%7CBqAHGh@%5BlBgA%7C@i@r@a@LIEOUcACIUGGSOs@eAyE@}AI%5BCQGYc@oBc@kBc@oBa@eBUcAMm@iA_F}A}GgCeHcAwC}BiGwDkKgAkCgBwEIWaCoGs@mBwB_Gk@yA%5DeA??yAaEiA}CyDqKoA_EwA_EqBwGcDuKGO}IcYmDaLkCoIq@yDGi@Cq@A}BHkDb@yN@mAVqH@o@JsCRuFHwBFiCP}I@c@?YAa@Ew@?%5De@}FAI@MUgCOiBMB@oEScCIcACYKw@SeBQeBkAeMs@sF@}CYyASeAc@{Bg@cCmAaFkDmNCOu@uCGUkByHcAeESw@Ca@uAcAmDi@kBsD}MyD}MaHsVsBeHsAsGc@oCIk@ESYsBWoB@cBw@gCUi@u@uBKWA_EqXMH@qEqAwGwD}PCMSaA_AcFgA_FOq@i@gBACm@kBwBqEYk@EoIqBeGq@uBMa@m@kBK@wAmEmCuI_BcFg@@yAmBgDkGaLO%5Du@wAEI}@aCk@oBe@CGe@Ko@@iFU{B?QAWAQSsBAEkAaJCIQsA%5BsBGe@DcAoEIYm@eC}CgMAAi@yBo@iC%7C@e@hH}Dj@%5BbGaDNKhB_At@a@j@%5BRI%5EUh@YFCtCyAh@%5DfCyAfEgCnBkANMCOaGaU%5BgACIOm@KgAMyA_CqJ@O@K@I@EBK@IBE@GBGDGDUtBq@dAc@%5CKlNkERGpPgFXKB?%5CMJCRGr@S%7COuELEl@S%60@MbEqApDgAvIsCdBk@fDeAf@MdJsCjBm@xCeApJkCr@Sh@OhDgAfRcGlFaB~MgELECMS}@Qw@c@mBEMWqAyAmG%5DyAmBkIMk@_AEiBeI%5DwAm@eCMg@eA}EEOUaAGWuAcGAECQKa@i@uBAIACcAqEWoAmBkJUoAO@Ko@SaAs@gDiAmFy@kDi@yBw@aD?A%5DuAI@K%5BUaAc@kBA?GWGWw@cDm@iCiAwEo@kCEKQy@}AoGm@aCe@iBOu@Qo@EQWcAKa@Qu@GWoAcFu@kD@}Ae@oBCKCOk@wB%5BiAOk@CIEOCICKOi@_@kAk@gB}@iC}@eCgA}CyBiFy@iBsC{FEVuEdATx@aQPoDLaCFqADq@NmCDg@D}@JgAFc@RqAJo@Lq@Pq@DOTq@HUHQ%60@eAP%5Bl@qAxAsC~CmGfCaFr@{AJUh@uAXw@N%5DFSL@FOFUFUDOJa@BMBMJm@Ju@TiBPwA@Qn@eCh@oCzAqN%7C@iGDS%7C@kF%5E@cAwTSeEfJcFPGz@%5DfKsE%60CeARIvCwA%60EmBlEqBHEn@W%7C@@r@c@l@%5D~@i@%5E%5Bb@@f@c@DAfDiCBCvHcGtAgAdAq@%7CDmCtGoEtDeC~IiGtA}@%5EWhAw@HGJG%7C@o@~CuBrKiHRMv@k@vByAxEcDHG%60@Uz@k@x@i@h@%5DnBoA%60@OJCfDiArCaA~@%5DpEmAtBSVCbGc@dGKtEBhA@%7CD@V?jFC%60@?t@AtA?R?vD?rDAxABt@?bOAP?V?lB?%7CH?%60A?z@?f@?x@?v@?%5E?vC?H?hD?hC?J?H?b@?R?lEAzCGR?%7CFHpZKrIA%60A?bEAF?nGAN?hKB%60@?%7CK@zD?t@?~HCr@?H?H?V?rA?fA?n@BpBGR?~A?J?X?VAfIGrDJ@vB@rB?NPCdGWlAG%7C@@dCDZ?nABt@HzBPb@FPDxAd@pAb@tAb@HDxARxBMpAJ%60@D%5CF%60@HxFpCfCtD%60AtAnAbBNPTXzAvB@@j@v@tBxCnBpCDDBDHHBD@@@Dn@p@dAlAr@z@pAzAZ%5Ch@n@TXHHRV@?nBzB%7CBjC%60BhBt@z@X%5C%60AjAX%5EpChDHJd@h@NP%7C@hANXzApCLTtAhChAtB%7C@%60BFJlA%7CBzApClAzBj@dAh@%60Al@jAZj@FLt@pAV%60@%60FtIhAbA%5CZvCtCjAdA~LvKlBbBLHPPLLhBzABBXZtAxARDPLDJFXFZFRRZh@n@v@%7C@%5Eb@xA%60C%7CAbCn@pAtB%7CDlCvGAn@%7C@zCdB~DPTz@fCn@lBbAxCv@~BhAtFp@hDVjAtDtQREfCq@%5EKbFsA%7CC~KjAzE~@fDh@dCBLlCbJ%7C@%60DX%60Ap@~BFTv@jCNl@d@~ADLt@lCv@pC%60@tAVx@lAfELb@x@tCH%5C~@bDj@nBt@rCr@hCh@nBx@zCJAfAKHAz@IXC%5C?XApCUlCSJAz@GNAZCXEl@Kx@Mn@Kd@If@I~@Oh@IREp@ObASbCfIBHFVBJFARGDAFCl@QtFcBbAUt@QnAYPQxAYxDy@ZbDRpAvAxDd@nADJlApCJTP%5Ef@fABFtAbC%60AvBBDjHsDt@%5BlAc@xAa@fE}@jCc@hAS%60Ba@vFsARA%60BClADTBd@HfBf@dEhBfObIfCx@~@L%7C@NdJVd@H%7C@PzAl@t@b@%60At@fAjALNf@l@@@JN@Bp@bBh@bB~A~FDPZpAbAjEb@hAl@hAz@bAfBpAvJjE%60RlJzAt@hDbCzBnBTTb@%5Cj@p@l@t@%5Cb@p@x@FJhAzAnE~Fh@l@xBbCjCzBfA~@PNNNDDdBlBTXbClCHJlAjBlCjEz@hDl@zBH%5CpAnJF%60@ZjJBrI@bM?f@?rB?l@AzEBl@J%60Ep@vHLvABPJp@DXBLR%7CAPbAvAzFZrADLXt@m@%5Cy@j@tAtCk@f@h@nA%7CAvD'

returns IndexError: string index out of range error . it's weird ,but i use https://github.com/mapbox/polyline , it works .

frederickjansen commented 7 years ago

Can you give me the coordinates of that string, or paste it in a code block? It's parsed as Markdown right now.

beyoung commented 7 years ago

'_jq~DcfwbViCeLy@wDcBgEMYrFqDrFmDfDyBnBqAbHiETMfFqCTMpIaDFCHGzBkAjB_ArAo@zBo@xCi@bDi@nEm@zC%5BpCUt@CrAGNABMNaABO%7CA_ODk@lB_Th@_GJeDI@kDgDSUe@c@kHgHwBuBMKa@@@%5BHUVo@pEiLVu@xCqHFMTg@JWLc@Nc@D_@Dk@Ci@Go@aAcHCOMq@c@kCqAgIMu@AiIc@iCO}AEyBDcC@%5D%7C@gJdBwOHy@fByARSVSlEyDtBaBfBwApAcAx@o@r@k@%7C@k@pCoBJIlMoIfIcFvA}@nAu@j@_@PIlAw@xCiBl@_@zFoD~BwA~BwAzFoDlFgDdC{AHGpBoAvA{@t@e@xJeGtFmD%5CQJIpBoAb@W%5CUf@_@HKhB@f@e@%7CFyDJGbKqFhL{G%60PwInBgAtEaBl@MfDs@tD{@tCo@bBk@%60Bs@dAs@%7CBqAHGh@%5BlBgA%7C@i@r@a@LIEOUcACIUGGSOs@eAyE_@}AI%5BCQGYc@oBc@kBc@oBa@eBUcAMm@iA_F}A}GgCeHcAwC}BiGwDkKgAkCgBwEIWaCoGs@mBwB_Gk@yA%5DeA??yAaEiA}CyDqKoA_EwA_EqBwGcDuKGO}IcYmDaLkCoIq@yDGi@Cq@A}BHkDb@yN@mAVqH@o@JsCRuFHwBFiCP}I@c@?YAa@Ew@?%5De@}FAI@MUgCOiBM_B_@oEScCIcACYKw@SeBQeBkAeMs@sF_@}CYyASeAc@{Bg@cCmAaFkDmNCOu@uCGUkByHcAeESw@Ca@uAcAmDi@kBsD}MyD}MaHsVsBeHsAsGc@oCIk@ESYsBWoB_@cBw@gCUi@u@uBKWA_EqXMH@qEqAwGwD}PCMSaA_AcFgA_FOq@i@gBACm@kBwBqEYk@_EoIqBeGq@uBMa@m@kBK_@wAmEmCuI_BcFg@@yAmBgDkGaLO%5Du@wAEI}@aCk@oBe@_CGe@Ko@_@iFU{B?QAWAQSsBAEkAaJCIQsA%5BsBGe@DcAoEIYm@eC}CgMAAi@yBo@iC%7C@e@hH}Dj@%5BbGaDNKhB_At@a@j@%5BRI%5EUh@YFCtCyAh@%5DfCyAfEgCnBkANMCOaGaU%5BgACIOm@KgAMyA_CqJ@O@K@I@EBK@IBE@GBGDGDUtBq@dAc@%5CKlNkERGpPgFXKB?%5CMJCRGr@S%7COuELEl@S%60@MbEqApDgAvIsCdBk@fDeAf@MdJsCjBm@xCeApJkCr@Sh@OhDgAfRcGlFaB~MgELECMS}@Qw@c@mBEMWqAyAmG%5DyAmBkIMk@_A_EiBeI%5DwAm@eCMg@eA}EEOUaAGWuAcGAECQKa@i@uBAIACcAqEWoAmBkJUoAO_@Ko@SaAs@gDiAmFy@kDi@yBw@aD?A%5DuAI_@K%5BUaAc@kBA?GWGWw@cDm@iCiAwEo@kCEKQy@}AoGm@aCe@iBOu@Qo@EQWcAKa@Qu@GWoAcFu@kD_@}Ae@oBCKCOk@wB%5BiAOk@CIEOCICKOi@_@kAk@gB}@iC}@eCgA}CyBiFy@iBsC{FEVuEdA_Tx@aQPoDLaCFqADq@NmCDg@D}@JgAFc@RqAJo@Lq@Pq@DOTq@HUHQ%60@eAP%5Bl@qAxAsC~CmGfCaFr@{AJUh@uAXw@N%5DFSL_@FOFUFUDOJa@BMBMJm@Ju@TiBPwA@Qn@eCh@oCzAqN%7C@iGDS%7C@kF%5E@cAwTSeEfJcFPGz@%5DfKsE%60CeARIvCwA%60EmBlEqBHEn@W%7C@_@r@c@l@%5D~@i@%5E%5Bb@_@f@c@DAfDiCBCvHcGtAgAdAq@%7CDmCtGoEtDeC~IiGtA}@%5EWhAw@HGJG%7C@o@~CuBrKiHRMv@k@vByAxEcDHG%60@Uz@k@x@i@h@%5DnBoA%60@OJCfDiArCaA~@%5DpEmAtBSVCbGc@dGKtEBhA@%7CD@V?jFC%60@?t@AtA?R?vD?rDAxABt@?bOAP?V?lB?%7CH?%60A?z@?f@?x@?v@?%5E?vC?H?hD?hC?J?H?b@?R?lEAzCGR?%7CFHpZKrIA%60A?bEAF?nGAN?hKB%60@?%7CK@zD?t@?~HCr@?H?H?V?rA?fA?n@BpBGR?~A?J?X?VAfIGrDJ@vB@rB?NPCdGWlAG%7C@@dCDZ?nABt@HzBPb@FPDxAd@pAb@tAb@HDxARxBMpAJ%60@D%5CF%60@HxFpCfCtD%60AtAnAbBNPTXzAvB@@j@v@tBxCnBpCDDBDHHBD@@@Dn@p@dAlAr@z@pAzAZ%5Ch@n@TXHHRV@?nBzB%7CBjC%60BhBt@z@X%5C%60AjAX%5EpChDHJd@h@NP%7C@hANXzApCLTtAhChAtB%7C@%60BFJlA%7CBzApClAzBj@dAh@%60Al@jAZj@FLt@pAV%60@%60FtIhAbA%5CZvCtCjAdA~LvKlBbBLHPPLLhBzABBXZtAxARDPLDJFXFZFRRZh@n@v@%7C@%5Eb@xA%60C%7CAbCn@pAtB%7CDlCvGAn@%7C@zCdB~DPTz@fCn@lBbAxCv@~BhAtFp@hDVjAtDtQREfCq@%5EKbFsA%7CC~KjAzE~@fDh@dCBLlCbJ%7C@%60DX%60Ap@~BFTv@jCNl@d@~ADLt@lCv@pC%60@tAVx@lAfELb@x@tCH%5C~@bDj@nBt@rCr@hCh@nBx@zCJAfAKHAz@IXC%5C?XApCUlCSJAz@GNAZCXEl@Kx@Mn@Kd@If@I~@Oh@IREp@ObASbCfIBHFVBJFARGDAFCl@QtFcBbAUt@QnAYPQxAYxDy@ZbDRpAvAxDd@nADJlApCJTP%5Ef@fABFtAbC%60AvBBDjHsDt@%5BlAc@xAa@fE}@jCc@hAS%60Ba@vFsARA%60BClADTBd@HfBf@dEhBfObIfCx@~@L%7C@NdJVd@H%7C@PzAl@t@b@%60At@fAjALNf@l@@@JN@Bp@bBh@bB~A~FDPZpAbAjEb@hAl@hAz@bAfBpAvJjE%60RlJzAt@hDbCzBnBTTb@%5Cj@p@l@t@%5Cb@p@x@FJhAzAnE~Fh@l@xBbCjCzBfA~@PNNNDDdBlBTXbClCHJlAjBlCjEz@hDl@zBH%5CpAnJF%60@ZjJBrI@bM?f@?rB?l@AzEBl@J%60Ep@vHLvABPJp@DXBLR%7CAPbAvAzFZrADLXt@m@%5Cy@j@tAtCk@f@h@nA%7CAvD'

. many Thanks. @frederickjansen ~_~

frederickjansen commented 7 years ago

Hi @beyoung This is actually not a valid polyline. The reason it works with Mapbox is because str.charCodeAt() returns NaN if it's outside of the normal range. However I will add a try/catch to make sure invalid polylines are still decoded as best as possible instead of failing completely.

For now though, if you add @ at the end of the string, it will decode properly (not sure if that returns the right value, but it will result in a valid string).

beyoung commented 7 years ago

That's great. Thx again.