bicyclingRoute static method

Future<BicyclingRouteData> bicyclingRoute(
  1. String origin,
  2. String destination,
  3. String key
)

获取骑行路线数据 origin: 起点坐标 destination: 终点坐标 key: 高德web服务api类型key 申请地址:https://lbs.amap.com/dev/

Implementation

static Future<BicyclingRouteData> bicyclingRoute(
    String origin, String destination, String key) async {
  ///创建Dio对象
  Dio dio = Dio();
  Response response = await dio.get(AmapWebApiUrl.bycyclingRouteApiUrl(origin, destination, key));

  ///骑行路线数据
  var data = BicyclingRouteEntity.fromJson(response.data);

  ///points数据
  final List<LatLng> points = <LatLng>[];

  ///steps数据
  ///List<BicyclingRouteDataPathsSteps>?
  var steps =
      data.data?.paths?.fold<List<BicyclingRouteDataPathsSteps>>([], (previousValue, element) {
    previousValue.addAll(element.steps ?? []);
    return previousValue;
  });
  var lineList = steps?.map((e) => e.polyline);
  var tlist = lineList?.fold<List<String>>([], (previousValue, element) {
    previousValue.addAll(element?.split(";") ?? []);
    return previousValue;
  });
  tlist?.forEach((e) {
    var t = e.split(",");
    var ll = LatLng(double.tryParse(t[1]) ?? 0, double.tryParse(t[0]) ?? 0);
    points.add(ll);
  });

  return BicyclingRouteData(data, steps ?? [], points);
}