Beispiel #1
0
        private async Task AddScenic(MapPoint location)
        {
            var x = new Dialog_ScenicScan();

            //x.Owner = Application.Current.MainWindow;
            x.ShowDialog();
            var ScenicName        = x.TxtName.Text;
            var ScenicDescription = x.TxtDescription.Text;
            var graphic           = new Graphic();

            //子窗体关闭按钮已做处理
            if (ScenicName != string.Empty && ScenicDescription != string.Empty)
            {
                var symbol = (sceniceAgent as IRenderGraphic).CreatSymbol <CompositeSymbol>();
                graphic = new Graphic
                {
                    Geometry = location,
                    Symbol   = symbol
                };
                var item = new Scenic
                {
                    description = ScenicDescription,
                    longitude   = (decimal?)location.X,
                    latitude    = (decimal?)location.Y,
                    id          = Convert.ToInt32(_graphicsLayer.Graphics.Last().Attributes["ID"]) + 1,
                    name        = ScenicName
                };
                graphic.Attributes["ID"]          = item.id;
                graphic.Attributes["Name"]        = ScenicName;
                graphic.Attributes["Description"] = ScenicDescription;
                graphic.Attributes["Longitude"]   = location.X;
                graphic.Attributes["Latitude"]    = location.Y;
                _graphicsLayer.Graphics.Add(graphic);
                var result = await sceniceAgent.AddScenicSpot(item);

                if (result)   //新增成功
                {
                    MessageBox.Show("新增景点信息成功", "操作成功", MessageBoxButton.OK, MessageBoxImage.Information);
                }
                else
                {
                    _graphicsLayer.Graphics.Remove(graphic);
                    MessageBox.Show("新增景点信息失败", "操作失败", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
        }
Beispiel #2
0
        private async Task AlterScenic(Point point)
        {
            var graphic = await _graphicsLayer.HitTestAsync(MyMapView, point, MAX_GRAPHICS);

            var _graphic = graphic.FirstOrDefault();
            var x        = new Dialog_ScenicScan();

            x.Title = "修改景点";
            string id = _graphic.Attributes["ID"].ToString();

            x.TxtName.Text        = _graphic.Attributes["Name"].ToString();
            x.TxtDescription.Text = _graphic.Attributes["Description"].ToString();
            //也可以采用点击位置的方式
            double longitude = double.Parse(_graphic.Attributes["Longitude"].ToString());
            double latitude  = double.Parse(_graphic.Attributes["Latitude"].ToString());

            x.ShowDialog();
            string ScenicName        = x.TxtName.Text;
            string ScenicDescription = x.TxtDescription.Text;

            if (ScenicName != string.Empty && ScenicDescription != string.Empty)
            {
                bool r = sceniceAgent.AlterScenicSpot(new Scenic()
                {
                    id          = int.Parse(id),
                    description = ScenicDescription,
                    name        = ScenicName,
                    longitude   = (decimal)longitude,
                    latitude    = (decimal)latitude
                });

                if (r)   //修改UI
                {
                    _graphic.Attributes["Name"]        = ScenicName;
                    _graphic.Attributes["Description"] = ScenicDescription;
                    MessageBox.Show("修改景点信息成功", "操作成功", MessageBoxButton.OK, MessageBoxImage.Information);
                }
                else
                {
                    MessageBox.Show("修改景点信息失败", "操作失败", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
        }