You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中如何获取两点间道路经纬度列表以绘制导航折线?

需求:在Google Map上绘制两点间的道路路线

我当前使用google_maps_flutter包实现的折线代码如下:

polyLine.add(Polyline(
  polylineId: PolylineId("route1"),
  color: Colors.blue,
  patterns: [
    PatternItem.dash(20.0),
    PatternItem.gap(10)
  ],
  width: 3,
  points: [
    LatLng(
      40.90555,
      -74.0078533,
    ),
    LatLng(
      40.844617,
      -73.902427,
    )
  ],
));

现在绘制出的是两点间的直线,我需要显示两点间的实际道路路线,求可行的实现方法。


解决方法

方法一:调用Google Maps Directions API获取路径点

  1. 发起API请求
    调用Google的Directions API,传入起点、终点经纬度,同时需要带上你的Google Maps API密钥(需先在Google Cloud控制台启用Directions API)。请求核心参数包括:

    • origin:起点经纬度,格式如40.90555,-74.0078533
    • destination:终点经纬度,格式如40.844617,-73.902427
  2. 解析响应数据
    API返回的JSON中,routes[0].overview_polyline.points是一串编码后的路径字符串,需通过解码工具将其转换为LatLng坐标点列表。

  3. 更新折线绘制
    将解码得到的LatLng列表替换掉代码中points参数的固定两点,即可绘制出沿道路的折线。

方法二:使用封装好的第三方插件

可以选择集成专门处理地图导航的Flutter插件,这类插件已封装了Directions API的调用和路径解析逻辑,无需自行编写请求与解析代码,直接就能获取道路路径点用于折线绘制。

内容的提问来源于stack exchange,提问作者priyank apps

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 05:52:33