private void button1_Click(object sender, EventArgs e) { var param = new DirectionParam(); var pickLat = pick_Lat.Text; var pickLon = pick_Lon.Text; var destLat = dest_Lat.Text; var destLon = dest_Lon.Text; param.origin = pickLat + "," + pickLon; param.destination = destLat + "," + destLon; //"34.666046, 135.500482"; // param.origin = "35.166058 ,136.895141"; //param.destination = "35.160610,136.901899"; //"35.166340,136.902254"; param.IsHighwayEnable = isHighWay.Checked; var apiBL = new APIAccessBL(); var res = apiBL.APIGetRoutes(param); if (res.isSuccess == 0) { MessageBox.Show("error " + res.Message); return; } Route1_Dist.Text = res.DistanceInMeters1.ToString(); Route2_Dist.Text = res.DistanceInMeters2.ToString(); Route1_Dur.Text = res.DurationRoute1; Route2_Dur.Text = res.DurationRoute2; }
public ResponseSummary APIGetRoutes(DirectionParam param) { try { var res = new ResponseSummary(); var url = DirectionAPIUrl + "origin=" + param.origin + "&destination=" + param.destination + ((param.IsHighwayEnable) ? "" : "&avoid=tolls|highways") + "&key=" + APIKey; var r = APIAccessCls.APIExecute(url); var steps1 = ""; var steps2 = ""; if (r == null) { return(new ResponseSummary { isSuccess = 0, Message = "APIExecute = null" }); } if (!r.isSuccess) { return(new ResponseSummary { isSuccess = 0, Message = r.Message }); } var r1 = r.routes[0].legs[0].steps; int i = 1; foreach (var m in r1) { steps1 += m.start_location.lat.ToString() + "," + m.start_location.lng.ToString() + "/" + m.end_location.lat.ToString() + "," + m.end_location.lng.ToString() + ((i < r1.Count) ? "/" : ""); i++; } var IsHighwayAvailable1 = false; res.RouteOneStatus = "一般道路"; foreach (var m in r1) { var IsHighWay = m.Html_instructions.Contains("高速"); var IsToll = m.Html_instructions.Contains("有料"); if (IsHighWay && IsToll) { IsHighwayAvailable1 = true; res.RouteOneStatus = "高速道路"; break; } } res.OrverviewPolyline1 = GooglePoints.Decode(r.routes[0].overview_polyline.points);// 2020/3/11 hirose 追加 res.DistanceInMeters1 = r.routes[0].legs[0].distance.value.ToString(); res.Steps1 = steps1; res.DurationRoute1 = r.routes[0].legs[0].duration.text.ToString(); res.Summary1 = ((IsHighwayAvailable1? r.routes[0].summary.ToString():"")); res.isSuccess = 1; if (r.routes.Length > 1) { var r2 = r.routes[1].legs[0].steps; int j = 1; foreach (var m in r2) { steps2 += m.start_location.lat.ToString() + "," + m.start_location.lng.ToString() + "/" + m.end_location.lat.ToString() + "," + m.end_location.lng.ToString() + ((j < r2.Count) ? "/" : ""); j++; } var IsHighwayAvailable2 = false; res.RouteTwoStatus = "一般道路"; foreach (var m in r2) { var IsHighWay = m.Html_instructions.Contains("高速"); var IsToll = m.Html_instructions.Contains("有料"); if (IsHighWay && IsToll) { IsHighwayAvailable2 = true; res.RouteTwoStatus = "高速道路"; break; } } res.OrverviewPolyline2 = GooglePoints.Decode(r.routes[1].overview_polyline.points);// 2020/3/11 hirose 追加 res.DistanceInMeters2 = r.routes[1].legs[0].distance.value.ToString(); res.DurationRoute2 = r.routes[1].legs[0].duration.text.ToString(); res.Steps2 = steps2; res.Summary2 = ((IsHighwayAvailable2 ? r.routes[1].summary.ToString() : "")); res.isSuccess = 2; } res.StartAddress = r.routes[0].legs[0].start_address; res.EndAddress = r.routes[0].legs[0].end_address; res.Message = ""; return(res); } catch (Exception ex) { return(new ResponseSummary { isSuccess = 0, Message = ex.Message + ex.StackTrace }); } }