Beispiel #1
0
        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
            });
        }
Beispiel #2
0
        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);
            }
        }
Beispiel #4
0
        /// <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;

        }
Beispiel #5
0
        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);
            }
        }