Skip to main content
Open

Decode Option in GeometryReplacer for 6 decimal places polyline

Related products:Transformers
  • February 24, 2023
  • 0 replies
  • 20 views
tcrossman
geographix
DanAtSafe
pyfsuds
  • tcrossman
    tcrossman
  • geographix
    geographix
  • DanAtSafe
    DanAtSafe
  • pyfsuds
    pyfsuds

geographix
Contributor

GeometryReplacer has an option for "EncodedPolyline". This supports polylines encoded to Google's documented 5 decimal places. But I have a polyline encoded to 6 decimal places, and so had to use PythonCaller and some ugly hacks to get a WKT formatted polyline.


Why am I using 6 decimal places? I'm using the Valhalla open-source routing engine for OpenStreetMap (https://valhalla.github.io/valhalla/).


Valhalla's reasoning for using 6 decimal places is documented at https://valhalla.github.io/valhalla/decoding/


I used the Python script in FME to get my decoded polylines, but would prefer an option in the GeometryReplacer for "Encoded Polyline 6dp" below "Encoded Polyline"


Their demo tool at https://valhalla.github.io/demos/polyline/ is useful in debugging.


Here's a random 6dp encoded polyline:


zsyo}@{cobaH??_KtDiHn@{HjHaMtDyOlHmI_AyL}HbGyt@jDwTHsc@tCsBw^pMgl@dFi_@j@}UlDw_@rCaKrQy[PmFdU{p@fZqx@pFuOfCiIVeCBkBAyBOkA{AcB}CyB}AaAgEyAqr@a]wdAmf@aJcCoHa@oIrAqIzDkGpDiF~DuB`B{B`As@~A CJnDDhDKxFN|EBfHeRjyCeIhjAiCfWmCdNk`mA}Jfa@cFrb@sHniA_EhU}EzReMre@}Lhe@kDpRmAbPmC`i@q@jO{IhqBaAlU_ClWkKvs@qAxOWdO`@`K`D|[hHzn@rO||AxHzx@tDlb@hX`nDbAhKnAfLzQhnAtEb]RrRFbF_A|Nc@`HGj@cCpW_AtIoFfh@mHtr@mCrLaD|JuFvIkHhImMnO_LrLiAlAw]|Z{FbF}}@|t@qwCr~BeGvEwSjPkRhOob@x^qm@fl@wObL_JtCqHpAuGZmQqAsDj@}Bf@gDpAEj@FzEXvFbClNrX~|@zDxVzA`N`BdTp@jWg@|kA~SgBbUwErr@kDld@cD~b@e@nFsEzp@sOlsAQbH~BvQNj@Hn@Bn@?n@Cl@In@Oj@Qh@Wf@[`@c@b@N`DmBpK]hEa@nH{DrdAg@bUcAh}@t]eDl}@}@~WqBxh@yJnwDF~Lh@tOf@~S|Af KhrAnGjw@hNnzA~Axa@d@xq@Anh@A`T`A|tCFlTlBb|DXryDr@viBHly@tBd`CX|[`AndAa@~f@]tTYpOy@z]wEz{@iIbaAoJbfAkh@rcGi^l{DeCpNcEdYgGpd@wD`r@sBjq@o`@|lEqNtaBe@xXf@`V~Eb]zGnUvGrPbVvZ|NtLtStKdm@xMd_BdXlr@zLv^dIpOxFfUlO|TdWlJfQfJ|UhPfcArFz_@nJfc@bKvWhNrWvQdV`UdTh|A|sAtk@re@jhYhZ`XfMfLjWp[`Wbc@t`~@bGtdFrYnK`v@tl@zyGhGpr@vDnd@rJ~iAbMjkAbK`y@fe@ntDtPdrAhGnc@zQrfAny@xfD~Rvq@xObl@n[nmA`Orq@hLtn@jPtkAbKf}@~Fdv@xTdsDhInn@jFfZ~Mli@jzAf{Djd@|gCfh@diC|Utq@~b@fz@jh@xz@|h@zz@zWvd@vV|r@zIda@rH|i@zOvmDvAr]xG`aBh[~oGpMncD^pS_AvUuAbTgEbXcGlVoJ~VuLxSwNvQoSnTap@nn@{d@`d@cMvLmm@`m@y[p]eOlTuTx_@av@ttAqX|f@{HnQsGrR{ClO}CtTaCrUaKrfAaLnjA}JxbAe@|EiK`jAsGzw@iDhj@wIvwAiAdW[hPp@fTtCvXnE~TzJzZrLbT`KzMtJzJbWpPzs@~YnP|GxKlHtJjInLdMpLhQhH~MzGzPfUhw@lPdk@hGbV`DlTtAjQZ|ToAv^g_@|uDcIt}@qBdVcAdJ}AnJ}@xH_AtDYxAMpBQfLJXPt@Fx@?x@Iv@Qt@Yn@GLyEhh@_NrdBmErj@mBpVo@be@M~JUvO{@bp@Zld@jBr`@zB|WdEtYjFtZz@|Cn@fBdA~A~GzGn@ @f@h@l@x@fA|@jBn@jBfBRbBFlAAxBOxA]nAe@dAq@~@q@n@s@`@_Ak@JaAFe@?}EzEaCpBiBtBiCxDsE|Dia@xt@qu@vtAax@lwAiMxUeLxVuJnWmI`X_eFn}Ps~DbsLuKz[ge@~yAeUvs@{x@j`C_]zaA_kEpfMyc@xaBoNf`BeC~xBu@`oBdAx]RlEl@jFzAjIt@vAb@`BPfB?hBQfBc@~As@tAaAfAWRmGxr@_BvxByAnkCj_Itj@eVtr@ulAluBq]pu@wN|c@qTvzAgHzsAmZnbGmPj`Cmf@j~Ic@|j@VxbIoYvuMcU~yFgEffAeFtfDs@jmAc@fw@lAx^dHlg@bZthAnY~eBlHdaAv@l[Kb_AuAr|Al@fs@dC`s@xe@~vHlG|p@lJjj@|Mjf@pPhc@di@reAni@vfAxHhS|BdJ~AxJnBrSVpUkAjSmCvSiOlq@kGxVsN`e@iIzPwI`MgL|K}OjJuPrFmSnCcRCwPgBaZmGyYuHkTuEgTiDiQiBsQ}@oS[{SNgOr@oOtAqOpBaOpCcQbE_QrF{MbFuMbG}w@he@ew@pe@koBplAeQjLeOnMaIlIsGdJaP`YaMpoI~^iDvYwEfk@wHlfAycA`uLoHzu@cAjK{g@xbGeAfLoJ|eAQtQKpE@vCBfIBLLr@Dr@At@Ir@Op@Wj@]f@c@^IFYrB]nBiA|Eo@nFgB~Re@fDw@`FUzAG|AFbBd@pCCnDHLbDPdC`ArDnAvDbArEd@zTvB|h@zFlf@rHfrBne@hf@`Mvf@jInsBtX|j@nGpGv@fgExr@rgClp@dd@nRjc@tTvb@xUd`Alq@h{@zw@zt@`x@rs@ro@r`BzfBj`An}Ari@|iAhi@dbB~P~p@zFfX~FnXjDxQtHhc@nLrt@tJvi@~Ido@rM|w@dArFxO`z@x@vD|o@`~CjQpz@z@xFfJtm@|@~H|C|XnBjQb@`E~@nIrGhDpCtE`AbENpGo@|E}DpHwHjDiI]yDsB}CiEaAwCk@mGLkD_BuR_BeScAoGsUesA{Nw{@ke@cwDigoBG[


0 replies

Be the first to reply!

Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings