fromToAMap static method

Future fromToAMap({
  1. required MapUtilEnum type,
  2. required double fromLat,
  3. required double fromLog,
  4. required String startName,
  5. required String endName,
  6. required double toLat,
  7. required double toLog,
  8. bool formGaode = true,
  9. int t = 2,
})

Implementation

static Future fromToAMap({
  required MapUtilEnum type,
  required double fromLat,
  required double fromLog,
  required String startName,
  required String endName ,
  required double toLat,
  required double toLog,
  bool formGaode = true,
  int t = 2,
}) async {
  String url = "";

  if (type == MapUtilEnum.amap) {

    url= "${Platform.isAndroid ? 'android' : 'ios'}amap://route/plan/?sid=&slat=${fromLat}&slon=${fromLog}&sname=${startName}&did=&dlat=${toLat}&dlon=${toLog}&dname=$endName&dev=0&t=$t";
  }

  if (type == MapUtilEnum.apple) {
     url = 'http://maps.apple.com/?&daddr=${toLat},${toLog}';
  }

  if (type == MapUtilEnum.baidu) {
    String mode = "";
    if(t==2){
      mode = 'walking';
    }
    url = 'baidumap://map/direction?origin=${fromLat},${fromLog}&destination=${fromLat},${toLog}&origin_name=$startName&destination_name=$endName&mode=$mode';
    if (formGaode) {
      List list = GpsUtil.gcj02_To_Bd09(fromLat, fromLog);
      List list1 = GpsUtil.gcj02_To_Bd09(toLat, toLog);
      url = 'baidumap://map/direction?origin=${list[0]},${list[1]}&destination=${list1[0]},${list1[1]}&origin_name=$startName&destination_name=$endName&mode=$mode';
    }
  }

  if (type == MapUtilEnum.tencent) {
    url = 'qqmap://map/routeplan?type=walk&from=$startName&fromcoord=${fromLat},${fromLog}&to=${endName}&tocoord=${toLat},${toLog}';
  }

  bool canLaunch = await canLaunchUrl(Uri.parse(url));
  if (canLaunch) {
    await launchUrl(Uri.parse(url));
  } else {
    throw 'Could not launch';
  }
}