kb0 / maps_toolkit

Dart library for area, distance, heading measurements
Apache License 2.0
46 stars 17 forks source link

PolygonUtil.decode is broken on web #27

Closed timbotimbo closed 1 year ago

timbotimbo commented 1 year ago

A decoded polyline that works fine on iOS and Android, is fully broken on web. It will turn into one or more straight lines.

This is an Android emulator (left) next to Chrome (right). polyline

I've use this polyline in the screenshot above.

u|ywHi_za@cM{U}PcIaB~@a@Vi@Fs@Pw@x@o@rAsD_HGcCy@l@oBpBMNi@f@URoAnASVqBzAuAd@eANgCIa@?k@DHXFp@aAn@eA]o@j@qAbBqAvB}A~Ci@`BQv@_@z@eB`C_@v@c@rAy@vAoBvCqCvD{@|@WNw@HSh@_@z@uAr@e@b@i@sAGq@Eu@CmBqAy@}@u@YMwAyAc@cAeAoDjAuAbFuIfBaCeBqFOi@cA}I?gADw@RcBLkBJcE?wCJQY_EH}DuA}HoBuGgDiEi@m@][q@a@m@Qm@IiB?UHUk@mBeIOeAAkABs@r@iEtB}RLcBQIo@i@oAeBg@}@UUoBuC_@[u@[}B_@qCmAq@QU[CL[JuBGa@I{@Gk@d@MRWJa@MK_AN_@?g@IkAQa@GR}HhIq@Ri@Ja@@mAM_A]aAm@iA[KFmAyAgAyBEa@Eg@JaAZi@xAqB~AmCrAuC|BoEFQdBuDNWXq@v@wA\\a@_@kA_@yB_@wAm@sAXeAIuLMyGMiE^Ef@_@t@y@pCgCnBoCnAM|@KnBgBPGDx@Ob@\\tEVl@~M}Cp@@LLvAShAa@|@u@d@Yn@Ux@GZ@C{BQwBUgCaAoIWwD?_@H@pIo@d@G~@?bBz@tAxAfAzCTj@fBxGvArFvEcCjAjHNZ`@a@rFiCnCcAj@GrECJv@zBxEt@bA~@p@`Bt@z@b@h@`@Z`@xArBT?rD]rGO~EGXIXUx@kBh@uAL}@PuBHgApBkI\\wAbAkDJkETeNK{@k@mCCa@BYFMw@{C{B{GyBgGeEe@oBs@aAw@aA_BaCwEcA{@oB{DgEwDcCeJmHoRnVwTcCqJQaCFiBQ_B_@sAe@eAnCmJrIyX`CqFjRo_@eMyZ}\\sz@wSi`@cSq_@VuC{@q`@mCsjA|E{Cj[sRl_Acj@|BgAvC}@zKeI|EsDp@Wv@D`Ct@nBpAdDnAbATz@?p@EbASp@i@dBiBd@~G@|@On@uAtByBfJQhACz@FjANjAx@dGJnABdAVdBj@|G\\dBl@lAvFfMbAdCZhBHn@Rz@l@lBbDtHJp@Zh@vCbKRnAFx@ExJGj@Fp@MvJKrGItGDzBXjFDtB^Q|Ce@h@HJ^`@|@P|@z@bNTnCXtAfA~DTrBtAlQFpA?x@KnAQtBm@xCs@pC]jBh@zJRpDDrAUjEi@jDe@~Bg@`BgAbESrAEbAFtAZtAz@rD^tA\\z@fCbEj@pBFtB_@nMBZNTXIv@{@rAuBjBeCd@Y`IuHjKoJ`McMz@m@|}@wy@eEaL[Kf@nBx@`DrApEfDlNNfAVnC^xDR~Ax@vDnB~H{DvCiEnEuC|AqChCeA~@s@z@mEjGaGlIwCbEIX?Z`D~MNVPFV?dHiBdAJtBbAl@DdIuGfEgCxAo@nBs@NJI`@?r@NnLJLR@P~BX~C@~BQjCk@|CaAfGy@fG_AtDOb@pJjCrF`CHRDhALhGIhAm@~F?fAHfDAn@GPaAd@c@`@w@x@wAvBYt@[hAO|AOjA_@v@g@ZqABeB`@cCCo@Ky@q@c@?iARc@TY\\gCtD}@jAo@\\{AFkADbAbEhA~D~G|MhDtHVr@j@hC`@bEP`CT|Bp@rChAnCzFvOZl@|@jAxKvJz@h@`Bl@dCj@nAHtD]t@AjBj@d@XNZ~GtLNHj@JTHXj@Tr@LbBCdBIv@]zAqBdHKt@CjA`BpQ@|B?pFJ~CHdAT`BhApF\\hCr@xH^~FV~G@bGCbHAdG?n@_@h@YjAkAxGuAzIa@zA}ArFa@vA[t@a@j@{EhFBx@@vFHb@BXDp@Cz@MjDA|CF~@dArQOfAMdAqErc@wK_FmLyFm@Uo@CeCA{JmIyEoDqBkDsBw@uBm@CjBqAzOO~ASpAYbA_DvHMj@YnBUjEQvA_@nAs@zBWU}BoBq@kBgA{E]g@aAHg@AiGmAiABoBd@cDTiA?aD]kAHqD|@eB`@sAJ@~FDvBLnBPxAVdAh@p@V^N^r@pCl@z@|@n@Xb@~@vBjC~DVt@sFnG_@Pe@Fa@EsD_@cCQUe@_@?Un@u@JuBT{BJqCPgCOwBBoBZcAA{@QgAc@m@Sw@BmBH}Bo@aCc@oCUiACcAUi@_@]GWqB]}BUeAWq@c@_@uB{BW@In@EtAKbAm@@_Ao@eGwIv@kDKsDoDsRsAgBuJp@gF`AkBz@

This exact issue was reported before, but using flutter_polyline_points instead. https://github.com/flutter/flutter/issues/86349

The issue is related to how bitwise operations are compiled to javascript. The solution in the other plugin was to use BigInt. https://github.com/Dammyololade/flutter_polyline_points/issues/40#issuecomment-751765055

kb0 commented 1 year ago

fix in 3.0.0