【问题标题】:Plot polyline in Google Maps在 Google 地图中绘制折线
【发布时间】:2020-02-25 04:30:56
【问题描述】:

我正在探索 Google Maps Direction API 并注意到我得到了 overview_polyline -> points 结果。我可以在此处的“编码折线”字段中输入该值:https://developers.google.com/maps/documentation/utilities/polylineutility。结果似乎是从开始位置到结束位置的实际行车路线。数据在我看来是正确的。

我希望在 Google 地图中看到这一点,但在起点和终点之间没有所有地图标记。如何获取这些信息并将其绘制在 Google 地图上?

【问题讨论】:

    标签: google-maps google-directions-api


    【解决方案1】:

    来自 Google Maps Javascript API 开发人员指南:Geometry Library: Geometry Encoding

    要解码编码路径,只需调用decodePath() 将编码字符串传递给方法。

    注意,请注意反斜杠编码(如果遇到问题,请将编码路径字符串中的“\\”替换为“\”)

    example fiddle

    代码sn-p:

    var map;
    var bounds = new google.maps.LatLngBounds();
    
    function initialize() {
      map = new google.maps.Map(
        document.getElementById("map_canvas"), {
          center: new google.maps.LatLng(34, 108),
          zoom: 13,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        });
    
      var jsonData = {
        "overview_polyline": {
          "points": "e`miGhmocNaN~DiBiNe@gEkEek@kNez@cJqq@sk@pGos@v]_}@aF_y@qm@qDe~@w]g~@gZ_Jo_@m_@yNsFgUpMov@~QebBrJq`BjTsx@w@kOqbEq_@qkCcf@}}Dej@yzCuf@o{Ba]m~EtVewAnBa`@sNmm@}dDufGqwA_|D_z@g~CmtBkuOrBmtCyG_yCam@{`Ee]qkB}d@ucDmDe|Aha@e}At]{v@xD}e@yf@aeIm^{rEgp@ahBiZu`BkVueH}gDwuXu`Fi__@yZecHgoAgyIl[ybCo^sgD_n@akBaJmeBog@yyAe`@ayB~FifCjNkmAzTwpAgf@cpFy~@{lJsg@ojHyi@e_Fq}@o`Dog@}tBoYmz@y`@sf@qf@ohCkLugBuv@seAg[ul@mMowBqc@iiC}eAcwCqm@_fBmuAypFyIiqA}BwyBy`@ogAwt@ypBezC{dIahBwxJgb@ytCw~AwvJkQwu@{t@yrCg{@s{Fgb@ehDzKsdAxO}vAiRmpCwcAorNuwAgdS_r@imJq[orAk]wrA_TyzAnFefAa\\guB_OmwAwF{tCwMcbDcr@m}_@}Qo_RgMo|A|d@kpAne@u{Brb@wnDzNkuB_D{v@eSgf@w\\ieAyb@guCii@ifCga@i_Amc@m]urAyoD}o@kiIsr@opQuLkhAc_@q`Bq\\}bEeEyi@iE}t@pHi|@tBmlBebB{qHq_BinFoWgpBoDuqEob@k{ConAedC}L}h@yd@yfAgz@}gAaZi_@m}@mcBwyAaj@_bBg|@csBm_Bo|BkaC{iBqsB_YqyBxEmtBks@aoB{RgLa~@bCcr@cLyoAemBeg@gt@_}@e`@on@uu@etA}vCqp@ubAklDgeGmxFiqHaqFoeHa[wbBu]}gAuoDeeG{uAooB_uAsy@om@ugAu_L{xSshEe_KieDm|KcfIcuWeUcOwy@aP{QuUg`BipF{P_l@klAgaEmjEs}NsvAiyFs}@izFjwAqrGtHkbCeB{cEql@g~CgSk|@mB}oAqNekEgw@cmDo_BgjFqqC}gH}`CwvG}cA{cB}nFowQ_t@an@efBmpE_oAsvCka@mwBk_CqbGuu@qfB{uAmrDivDw|E{nAqbDmpCyaJgdCejHk~@owAsw@adAm_@abA}Ven@qCou@cKeiBca@_cBmlAyjAsn@_kCk}@smDkVg{Bk}@gcHox@_sEaPwdC~KazF{EcpCrEmeGl]auBeEi~@yiAovCwwAgsC{i@oSsbAu~Ay_AmaBk_@iKak@mh@_BmBk@wHvG@dBvA"
        }
      };
      var path = google.maps.geometry.encoding.decodePath(jsonData.overview_polyline.points);
      console.log(path);
      for (var i = 0; i < path.length; i++) {
        bounds.extend(path[i]);
      }
    
      var polyline = new google.maps.Polyline({
        path: path,
        strokeColor: '#FF0000',
        strokeOpacity: 0.8,
        strokeWeight: 2,
        fillColor: '#FF0000',
        fillOpacity: 0.35,
        map: map
          // strokeColor: "#0000FF",
          // strokeOpacity: 1.0,
          // strokeWeight: 2
      });
      polyline.setMap(map);
      map.fitBounds(bounds);
    
    }
    
    
    google.maps.event.addDomListener(window, "load", initialize);
    html,
    body,
    #map_canvas {
      height: 100%;
      width: 100%;
      margin: 0px;
      padding: 0px
    }
    <script src="https://maps.googleapis.com/maps/api/js?libraries=geometry&key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk"></script>
    <div id="map_canvas" style="border: 2px solid #3872ac;"></div>

    【讨论】:

    • 如果这回答了您的问题,请accept it
    猜你喜欢
    • 2013-05-23
    • 2020-03-05
    • 1970-01-01
    • 2018-03-06
    • 2016-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多