private async void Walk_OnClick(object sender, RoutedEventArgs e) { baseLayer.Clear(); var man = RandomAccessStreamReference.CreateFromUri(new Uri("ms-appx:///Assets/man.png", UriKind.RelativeOrAbsolute)); AMapRouteResults rts = await AMapNavigationSearch.WalkingNavigation(start.Longitude, start.Latitude, end.Longitude, end.Latitude, 0); if (rts.Erro == null) { if (rts.Count == 0) { Debug.WriteLine("无查询结果"); return; } AMapRoute route = rts.Route; List <AMapPath> paths = route.Paths.ToList(); foreach (AMapPath item in paths) { Debug.WriteLine("起点终点距离:" + item.Distance); Debug.WriteLine("预计耗时:" + item.Duration / 60 + "分钟"); Debug.WriteLine("导航策略:" + item.Strategy); //画路线 List <AMapStep> steps = item.Steps.ToList(); foreach (AMapStep st in steps) { var icon = new AMapIcon { Location = LngLatsFromString(st.Polyline).FirstOrDefault(), Image = man }; Debug.WriteLine(st.Instruction); var polyline = new AMapPolyline { Path = new AGeopath(LngLatsFromString(st.Polyline)) }; await baseLayer.Add(icon); await baseLayer.Add(polyline); } } } else { Debug.WriteLine(rts.Erro.Message); } }
private async void Bus_OnClick(object sender, RoutedEventArgs e) { baseLayer.Clear(); string city = "北京"; AMapRouteResults rts = await AMapNavigationSearch.BusNavigation(start.Longitude, start.Latitude, end.Longitude, end.Latitude, 0, false, city); if (rts.Erro == null) { if (rts.Count == 0) { Debug.WriteLine("无查询结果"); return; } AMapRoute route = rts.Route; List <AMapTransit> transits = route.Transits.ToList(); List <AMapSegment> segments = transits.FirstOrDefault(p => p.Segments != null).Segments.ToList(); var busEnd = RandomAccessStreamReference.CreateFromUri(new Uri("ms-appx:///Assets/bus_end_pic.png", UriKind.RelativeOrAbsolute)); var busStart = RandomAccessStreamReference.CreateFromUri(new Uri("ms-appx:///Assets/bus_start_pic.png", UriKind.RelativeOrAbsolute)); foreach (AMapSegment item in segments) { var destination = new AMapIcon { Location = new LngLat(item.Walking.Destination.Lon, item.Walking.Destination.Lat), Image = busEnd }; var origin = new AMapIcon { Location = new LngLat(item.Walking.Origin.Lon, item.Walking.Origin.Lat), Image = busStart }; await baseLayer.Add(origin); await baseLayer.Add(destination); //绘制步行路径 foreach (AMapStep sp in item.Walking.Steps) { var polyline = new AMapPolyline { Path = new AGeopath(LngLatsFromString(sp.Polyline)), StrokeColor = Colors.Blue }; await baseLayer.Add(polyline); //Debug.WriteLine(line.Points.Count); //Debug.WriteLine("Walking.Steps:" + sp.Polyline); } //绘制公交路径 foreach (AMapBusLine busLine in item.BusLine) { var polyline = new AMapPolyline { Path = new AGeopath(LngLatsFromString(busLine.Polyline)), StrokeColor = Colors.Green }; await baseLayer.Add(polyline); if (busLine.Via_stops == null) { continue; } RandomAccessStreamReference bus = RandomAccessStreamReference.CreateFromUri(new Uri("ms-appx:///Assets/bus.png", UriKind.RelativeOrAbsolute)); foreach (AMapBusStop busstop in busLine.Via_stops) { var busIcon = new AMapIcon { Location = new LngLat(busstop.Location.Lon, busstop.Location.Lat), Image = bus }; await baseLayer.Add(busIcon); } } } } else { Debug.WriteLine(rts.Erro.Message); } }
private async void Car_OnClick(object sender, RoutedEventArgs e) { baseLayer.Clear(); //116.481028, 39.989643, 116.465302, 40.004717 AMapRouteResults rts = await AMapNavigationSearch.DrivingNavigation(start.Longitude, start.Latitude, end.Longitude, end.Latitude); #region 线段是一段段给的 //if (rts.Erro == null) //{ // if (rts.Count == 0) // { // Debug.WriteLine("无查询结果"); // return; // } // AMapRoute route = rts.Route; // List<AMapPath> paths = route.Paths.ToList(); // foreach (AMapPath item in paths) // { // Debug.WriteLine("起点终点距离:" + item.Distance); // Debug.WriteLine("预计耗时:" + item.Duration/60 + "分钟"); // Debug.WriteLine("导航策略:" + item.Strategy); // //绘制驾车路线 // List<AMapStep> steps = item.Steps.ToList(); // foreach (AMapStep st in steps) // { // Debug.WriteLine(st.Instruction); // var icon = new AMapIcon // { // Location = LngLatsFromString(st.Polyline).FirstOrDefault(), // Image = RandomAccessStreamReference.CreateFromUri(new Uri("ms-appx:///Assets/car.png", // UriKind.RelativeOrAbsolute)) // }; // IEnumerable<LngLat> lnglats = LngLatsFromString(st.Polyline); // var polyline = new AMapPolyline {Path = new AGeopath(lnglats)}; // await baseLayer.Add(polyline); // await baseLayer.Add(icon); // } // } //} //else //{ // Debug.WriteLine(rts.Erro.Message); //} #endregion if (rts.Erro == null) { if (rts.Count == 0) { Debug.WriteLine("无查询结果"); return; } AMapRoute route = rts.Route; List <LngLat> alLngLats = new List <LngLat>(); List <AMapPath> paths = route.Paths.ToList(); foreach (AMapPath item in paths) { Debug.WriteLine("起点终点距离:" + item.Distance); Debug.WriteLine("预计耗时:" + item.Duration / 60 + "分钟"); Debug.WriteLine("导航策略:" + item.Strategy); //绘制驾车路线 List <AMapStep> steps = item.Steps.ToList(); foreach (AMapStep st in steps) { IEnumerable <LngLat> lnglats = LngLatsFromString(st.Polyline); alLngLats.AddRange(lnglats); } } AMapPolyline polyline = new AMapPolyline(); polyline.Path = new AGeopath(alLngLats); await baseLayer.Add(polyline); } else { Debug.WriteLine(rts.Erro.Message); } }