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获取路径点
发起API请求
调用Google的Directions API,传入起点、终点经纬度,同时需要带上你的Google Maps API密钥(需先在Google Cloud控制台启用Directions API)。请求核心参数包括:- origin:起点经纬度,格式如
40.90555,-74.0078533 - destination:终点经纬度,格式如
40.844617,-73.902427
- origin:起点经纬度,格式如
解析响应数据
API返回的JSON中,routes[0].overview_polyline.points是一串编码后的路径字符串,需通过解码工具将其转换为LatLng坐标点列表。更新折线绘制
将解码得到的LatLng列表替换掉代码中points参数的固定两点,即可绘制出沿道路的折线。
方法二:使用封装好的第三方插件
可以选择集成专门处理地图导航的Flutter插件,这类插件已封装了Directions API的调用和路径解析逻辑,无需自行编写请求与解析代码,直接就能获取道路路径点用于折线绘制。
内容的提问来源于stack exchange,提问作者priyank apps
相关产品推荐
相关产品推荐

