获取给定路线的所有GPS位置点(PHP)

时间:2018-05-26 12:45:17

标签: php gps maps

我正在寻找一种方法来获取给定路线的所有GPS坐标而不使用使用Google地图JS库,因为我想在服务器端获取数据。

  

所以我已经弄明白并且 将解决方案作为答案发布 。希望这对某些人有用:)

干杯!!

1 个答案:

答案 0 :(得分:0)

使用Google Directions API,您可以获得路线的“overview_polyline”。通过折线解码器,您可以获得给定路线上的所有GPS坐标。

示例链接: - https://maps.googleapis.com/maps/api/directions/json?origin=Panadura&destination=Moratuwa&key=YOUR_KEY

上面的链接会将所有步骤作为json响应返回,并且在响应结束时会有一个名为“overview_polyline”的元素;

回复示例: -

"overview_polyline": {
            "points": "_p_h@ilzfNQtAWOiAk@c@OeAJgBn@eAj@cAf@wChBo@f@OXGf@GLKFWFBz@TlAJj@b@jARt@Hv@R`BRdANx@LZz@fBv@tAb@n@Zt@d@pAd@rADNH`@Vn@TV`@ZtAlAf@x@Jh@@^?zAQhBWrBMrBAl@G~@Mr@On@s@`BU|AKxAHv@Az@KjBi@~DEp@Dl@@h@A\\GtAF`@Vd@FZAl@KhAE\\f@Xf@^RVP^?v@MrASfECzD?fCCpC@La@BiAFoAFmCPoBPuCb@_ARcAVy@Xo@\\_At@uAnA}AnAOLABCBA@]|@Ib@Gx@UlDCdBWnGQpCHj@BJ@BBFALEDYvBWdAM\\k@xAs@pAs@dAi@n@oBjBoAbA}@h@SHaL|CiWnHgLzCuD`A{Cl@aKlB_BX{A^kFvA}@XyEfBoBr@uBv@gDnA{E|A{GrBmHdBmD|@aIzBkBf@mCj@sB^{Ch@mCh@yD|@}GjB_EnAoDbAoCp@oDz@cDx@gDv@gIhBoB^cALuAN}ALmCLeDDaGAoB@iBHaEZyBX{Fp@eFl@uAJeBDgA?kACaAGkAMyAYeBa@cCy@wHqCwAa@mEs@mC_@{CUmIc@oCIw@IsAW}Bc@IBK?IEGK?KBK\\[JOV{@p@yC?u@K_BSsBCk@?iCFm@@QEs@GYS[K[A]B]As@K_A?oA@cA"
        },

使用折线解码器可以获得所有GPS坐标。互联网上有许多折线解码器。

以下是一些,

  1. Javascript:https://github.com/mapbox/polyline
  2. PHP:https://github.com/dyaaj/polyline-encoder
  3. Google地图:https://developers.google.com/maps/documentation/utilities/polylineutility
  4.   

    确保将\\(双反斜杠)替换为折线字符串中的\(单反斜杠)。

    如果您仍想根据特定的距离分割得到分数(例如:200米),您可以编写一个代码来测量相邻位置的距离,并通过删除不需要的点来构建点阵列。