By making Google Maps API call, I received a response JSON which contained this polyline1:
ezdvBcps}Lt@W@F@BVKl@UK]Wc@}@kAOKBEzA{BdA}Ab@s@LBf@RjARZBv@?rAAfBIX?f@FLBf@^b@hATbAF~@BvB?hALjBHpCLjAVdAd@dAxCbGlA~BbBvCpAbD`AnCVpB\\hBf@nB|@tAb@f@RVXLbDj@jCl@nAf@`DbBdC`B`@b@HNN`@lA~DnAvBvB`G\\fA^p@j@z@~E`FbBpBxDfFXh@|@pD`@bB^fANd@\\`Bl@rBb@fATj@v@bBjBwCd@w@NB^B\\@\\K\\Q|AWZGXOPIRBb@K\\Kl@_@VOZWVI^Eh@Ov@KxCJ\\@\\K^@RMh@QhAMXKXY`@Q^SLK`@]fBc@n@M\\OlB_@n@KNMRUZQZGh@Ht@Lx@F`@BTANDRNTPNDDHLXN`@LRTJx@?RBJFFLV\\Zs@TQ`@MVIhAYp@YPc@VgALk@Hk@d@eA\\cAHq@Eo@J}@@q@DItAgAv@i@|@e@v@k@bAaAdDuB|@c@?I?]?{@Ms@COFWJODYEcABOTU^e@H_@Km@Ci@BU?e@Ca@Ie@e@oBKk@Eu@M{@CoAC}@Km@Iy@IaA?{@Ci@Ms@UgA]y@Mm@GQICe@QKMGi@Gi@GSI[Ym@[{@@_AK]SMo@i@OCg@EOEMMYSi@IUO]Ko@KSIWUWMU_@I]Kw@WoACY@a@CWQWe@[QIOYMYW]SMQUQu@OWWSUWU[SsAEg@Ic@Mc@?a@Ai@Em@AUOa@M_@e@g@MSGYOY_@YIQSR[Pa@mBQaAI[@QDyACq@Iu@o@k@e@Y]IcAAmBC]Ee@IgAUWAw@Ae@GWSaAeAYk@Si@a@k@YAc@O{@]a@MnAqA~@mCVaAHk@YmCIQSQOS
Rendering polyline1 directly
I tried to visualize this polyline using online tool, which gave me following output:
Image 1:
When I stored this polyline in postgres as GEOMETRY(LINESTRING) using st_asText(ST_LineFromEncodedPolyline(...) function (as explained in this answer), QGIS rendered it exactly same as above.
Polyline1 to lat-long array to polyline2 conversion and then rendering polyline2
I tried to decode the polyline into lat long array in Python using polyline package (github link).
>>> import polyline
>>> l = polyline.decode('ezdvBcps}Lt@W@F@BVKl@UK]Wc@}@kAOKBEzA{BdA}Ab@s@LBf@RjARZBv@?rAAfBIX?f@FLBf@^b@hATbAF~@BvB?hALjBHpCLjAVdAd@dAxCbGlA~BbBvCpAbD`AnCVpB\\hBf@nB|@tAb@f@RVXLbDj@jCl@nAf@`DbBdC`B`@b@HNN`@lA~DnAvBvB`G\\fA^p@j@z@~E`FbBpBxDfFXh@|@pD`@bB^fANd@\\`Bl@rBb@fATj@v@bBjBwCd@w@NB^B\\@\\K\\Q|AWZGXOPIRBb@K\\Kl@_@VOZWVI^Eh@Ov@KxCJ\\@\\K^@RMh@QhAMXKXY`@Q^SLK`@]fBc@n@M\\OlB_@n@KNMRUZQZGh@Ht@Lx@F`@BTANDRNTPNDDHLXN`@LRTJx@?RBJFFLV\\Zs@TQ`@MVIhAYp@YPc@VgALk@Hk@d@eA\\cAHq@Eo@J}@@q@DItAgAv@i@|@e@v@k@bAaAdDuB|@c@?I?]?{@Ms@COFWJODYEcABOTU^e@H_@Km@Ci@BU?e@Ca@Ie@e@oBKk@Eu@M{@CoAC}@Km@Iy@IaA?{@Ci@Ms@UgA]y@Mm@GQICe@QKMGi@Gi@GSI[Ym@[{@@_AK]SMo@i@OCg@EOEMMYSi@IUO]Ko@KSIWUWMU_@I]Kw@WoACY@a@CWQWe@[QIOYMYW]SMQUQu@OWWSUWU[SsAEg@Ic@Mc@?a@Ai@Em@AUOa@M_@e@g@MSGYOY_@YIQSR[Pa@mBQaAI[@QDyACq@Iu@o@k@e@Y]IcAAmBC]Ee@IgAUWAw@Ae@GWSaAeAYk@Si@a@k@YAc@O{@]a@MnAqA~@mCVaAHk@YmCIQSQOS')
>>> l[:5]
[(19.52691, 73.17778), (19.52664, 73.1779), (19.52663, 73.17786), (19.52662, 73.17784), (19.5265, 73.1779)]
>>> len(l)
293
I encoded this lat long back using using this online tool to obtain polyline:
ezdvBcps}Lt@UBHdAa@K]Wc@}@kAOKhEsGNDf@PhARZBlCA`CIr@Jh@^`@hAVbAD~@B`ELjBJpCJlAXbAd@dAvCbGlA`CbBvCpA`D`AnCVrB\fBf@nB~@vAt@|@XLdDj@hCl@nAf@`DbBdC`B`@b@Xr@lA|DnAvBvB`G\fA^p@j@|@~E~EbBrBxDdFXh@~AtGn@lB^`Bj@rBx@rBv@bBpCoElAH^KZQxB_@j@WR@b@I\MdAo@ZWVI^Eh@Mv@MvDL^I\?RMj@QfAKXMXY`Ae@n@i@vCq@\O|Ck@b@c@ZQZG~AVzAJVALDj@b@LBb@dALRTLx@?R@JF^j@Zs@TQbCq@p@WPc@d@sBJk@b@gA\cAHo@Cq@H}@@q@FGrAgAv@k@|@e@v@k@bAaAdDuB|@c@?cBQcAHWHOFYGcADOr@{@H_@Km@Cg@BW?e@Ca@{@aECu@O{@GmCKm@S{B?{@Ci@a@yB_@{@U_Ao@SIOQqAQq@Ym@[{@@_AK]cAu@w@IOGg@a@g@IWO]Ko@KSIWUUMW_@m@eDCY@_@AYSWw@e@]s@W]SMQUQu@OWWSk@s@SqAEi@WgA?iAIeA[_Ae@i@OSGYMYa@YIQSR[P}@iEFkBAs@Ku@m@k@e@Y_@IqDEcAMgAWoACe@GWQaAgAYk@Si@_@k@[AaC{@pAqA|@mCVaAHk@YmCIQSQOS
Now when I tried to visualize this polyline, I got this:
Image 2
This seems exactly the grey path that I get when I search for direction on maps.google.com (grey route in the image below) (search link):
Also when I stored above lat long array itself in postgress as GEOMETRY(POINT) (as explained in this answer), QGIS rendered array of points having same shape as above (image2).
Why is polyline1 so different from what I get in maps.google.com and why first converting it to lat-long array and re-encoding it gives polyline2 which is the same as that shown in maps.google.com?


