private void CircleButton_Click(object sender, RoutedEventArgs e) { MCircle mp; MLngLatCollection xys = new MLngLatCollection(); xys.Add(map.Center); xys.Add(new MLngLat(map.Center.LngX + 0.0151, map.Center.LatY - 0.0131)); map.Children.Add(mp = new MCircle() { LngLats = xys, LineColor = Colors.Green, LineThickness = 4 }); }
private void PolygonButton_Click(object sender, RoutedEventArgs e) { MPolygon mp; MLngLatCollection xys = new MLngLatCollection(); xys.Add(map.Center); xys.Add(new MLngLat(map.Center.LngX + 0.0001, map.Center.LatY + 0.0001)); xys.Add(new MLngLat(map.Center.LngX - 0.0041, map.Center.LatY - 0.0001)); xys.Add(new MLngLat(map.Center.LngX + 0.0021, map.Center.LatY + 0.0031)); xys.Add(new MLngLat(map.Center.LngX + 0.0051, map.Center.LatY - 0.0031)); map.Children.Add(mp = new MPolygon() { LngLats = xys, LineColor = Colors.Green, LineThickness = 4 }); }
void CallBack(MRouteSearchResult sender) { if (sender.Erro == null) { List <MOverlay> list = new List <MOverlay>(); // MessageBox.Show("通过设置MRouteSearchOption对象属性进行导航路径搜索信息 如下:\nBounds" + sender.Bounds + "Coors:" + sender.Coors + "Count:" + sender.Count.ToString() + "Length:" + sender.Length.ToString() + " Routes.count:" + sender.Routes.Count + " SearchTime:" + sender.SearchTime.ToString()); for (int i = 0; i < sender.Routes.Count; i++) { //string url = "AccessorialInfo:" + sender.Routes[i].AccessorialInfo + "\n" + "Action:" + sender.Routes[i].Action + "\n" + "Coor:" + sender.Routes[i].Coor.ToString() + "\n" + "Direction:" + sender.Routes[i].Direction + "\n" + "DriveTime:" + sender.Routes[i].DriveTime + "\n" + "Form:" + sender.Routes[i].Form + "\n" + "Grade:" + sender.Routes[i].Grade + "\n" + "RoadLength:" + sender.Routes[i].RoadLength + "\n" + "RoadName:" + sender.Routes[i].RoadName + "\n" + "TextInfo:" + sender.Routes[i].TextInfo + "\n"; //MessageBox.Show("第" + i + "个路段信息 如下:\n" + url); MLngLatCollection mc = sender.Routes[i].LngLats;//构造经纬度序列集合 MPolyline polyline = new MPolyline(); polyline.LngLats = mc; //mc为组成线的经纬度坐标串 polyline.LineColor = Utilities.HexToColor("#022672"); //线的颜色 polyline.LineThickness = 6; //线的粗细 polyline.CanShowTip = false; map.Children.Add(polyline); //添加到地图 list.Add(polyline); } map.SetFitview(list); if (sender.ViaCities != null) { for (int i = 0; i < sender.ViaCities.Count; i++) { string url = "CityEnglishName:" + sender.ViaCities[i].CityEnglishName + "\n" + "CityName:" + sender.ViaCities[i].CityName + "\n" + "Code:" + sender.ViaCities[i].Code + "\n" + "Telnum:" + sender.ViaCities[i].Telnum; MessageBox.Show("途径第" + i + "个城市信息 如下:\n" + url); } } else { return; } } else { MessageBox.Show(sender.Erro.Message); } }
/// <summary> /// 经纬度字符串转成经纬度集合 /// </summary> /// <param name="polyline"></param> /// <returns></returns> private MLngLatCollection latLagsFromString(string polyline) { MLngLatCollection latlngs = new MLngLatCollection(); string[] arrystring = polyline.Split(new char[] { ';' }); foreach (String str in arrystring) { String[] lnglatds = str.Split(new char[] { ',' }); latlngs.Add(new MLngLat(Double.Parse(lnglatds[0]), Double.Parse(lnglatds[1]))); } return latlngs; }
private async void SearchWalking(MLngLat stat, MLngLat end) { try { AMapRouteResults rr = await AMapNavigationSearch.WalkingNavigation(stat.LngX, stat.LatY, end.LngX, end.LatY); if (rr.Erro != null) { return; } if (rr.Route != null && rr.Count != 0) { AMapRoute route = rr.Route; List<AMapPath> paths = route.Paths.ToList(); MLngLatCollection lnglats = new MLngLatCollection(); List<MOverlay> list = new List<MOverlay>(); List<string> walkSteps = new List<string>(); foreach (AMapPath path in paths) { //画路线 List<AMapStep> steps = path.Steps.ToList(); foreach (AMapStep st in steps) { Debug.WriteLine(st.Instruction); walkSteps.Add(st.Instruction); lnglats = latLagsFromString(st.Polyline); MPolyline walkPolyling = new MPolyline(lnglats); walkPolyling.LineThickness = 6; walkPolyling.LineColor = Colors.Green; mapWalkingLayer.Children.Add(walkPolyling); list.Add(walkPolyling); } } map.SetFitview(list); //TODO: tip walkSteps } } catch (Exception ex) { Debug.WriteLine("SearchWalking:" + ex.Message); } }