当前位置: 首页 > news >正文

连州网站建设龙岩网站开发公司

连州网站建设,龙岩网站开发公司,广州企业网站建设开发,qq登录网页版电子沙盘数字沙盘大数据可视化GIS系统开发教程第16课:新增加属性在MTGIS3d控件 public bool ShowFLGrid;//是否显 示方里网格。 public bool Atmosphere;//是否显示大气圈。(因为WPF不支持shader功能,所以效果嘛。。。) 在SDK中为…

电子沙盘数字沙盘大数据可视化GIS系统开发教程第16课:新增加属性在MTGIS3d控件

  public bool ShowFLGrid;//是否显 示方里网格。

        public bool Atmosphere;//是否显示大气圈。(因为WPF不支持shader功能,所以效果嘛。。。)

在SDK中为了方便三方数据的接入,引入了一个用户层接口。主要是完成三方数据的接入,含动态数据(如GPS),用户可自行控制UI及UI的交互,可实现如滴滴打车的车辆控制,公安应用中的UI按属性控制显示,并且该用户层的显示是由核心部分直接调用,在需要显示数据的调用下面的接口,这样可防止因为用户是从外部接入。而卡顿,影响用户使用体验。而UI的回收是由核心负责,不需要用户干预,二次开发时用户只用关心自己要承现的UI,及UI的交互:

     public interface UserGisData : INotifyPropertyChanged
    {
 
 
        NewGisBiao.Base.JunBiao.CenteType BiaoCenterType
        {
            get;  //这个UI对象的中心点类型
        }
 
        string LayName {
            get; //用户层名称
         
        }
 
     
 
 
        /// <summary>
        /// 标签整体缩放
        /// </summary>
        double  MScal
        {
            get; //UI整体缩放参数
        }
 
 
        Dictionary <string, GisLib.DrawPointData> DrawObject
       {
           get;  //访问当前已经存在UI对象
           set;
       }
 
        /// <summary>
        /// 是否显示
        /// </summary>
       bool ISShow
       {
           get;  //隐藏和显示该用户层
           set;
       }
 
        /// <summary>
        /// 最小显示层
        /// </summary>
       int MinZoom
       {
           get;  //该用户层的最小显示层
           set;
       }
 
        /// <summary>
        /// 最大显示层
        /// </summary>
       int MaxZoom
       {
           get; //该用户层的最大显示层
           set;
       }
 
 
 
 
        /// <summary>
        /// 返回一个图标表示这个层的图标
        /// </summary>
        System.Windows.Media.Imaging.BitmapImage MICon
        {
            get;
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="centerx">查询中心点经度(如果没有会传入null) </param>
        /// <param name="centery">查询中心点纬度(如果没有会传入null)</param>
        /// <param name="info">查询的信息(如果是全部会传入*)</param>
        /// <param name="length">范围(如果没有会传入null)</param>
        /// <returns></returns>
        Dictionary<SechData, Point> SechPro(double centerx, double centery, string info, double length);
 
        Dictionary<SechData, Point> SechForLine(List<Point> Line, string info, double length);
        Dictionary<SechData, Point> SechForRect(List<Point> Line, string info, double length);
 
        /// <summary>
        /// 画用户物体
        /// </summary>
        /// <param name="centerx"></param>
        /// <param name="centery"></param>
        /// <returns></returns>
        List<DrawPointData> DrawData(double centerx, double centery);
 
 
        void OnUserBiaoClick(DrawPointData va); //UI点击的事件,现已作废,UI可自行响应所有交互事件
 
 
 
    }

List<DrawPointData> DrawData(double centerx, double centery); 为该接口的核心部分,传入参数为当前地图的中心 点经纬度,根据这个经纬度,二次开发用户需要从 数据(如mysql或者其它三方数据中)查询当前需要显示范围的 数据,并连通UI一起返回:例子如下:

 List<DrawPointData> UserGisData.DrawData(double centerx, double centery)
        {
 
            if (Con == null)
            {
                Con = new MySql.Data.MySqlClient.MySqlConnection(IniRead.IniReadWrite.GetMySqlDataConnstring());
                Con.Open();
            }
 
            int mmzoom = IniRead.IniReadWrite.MPareant.Zoom;
            int drawfanwei = 5;
            double bx, by, ex, ey;
            Int64 cx, cy;
            NewGisBiao.Help.MathHelp.MyConver(centerx, centery, out cx, out cy, (int)mmzoom - 1);
            NewGisBiao.Help.MathHelp.MyConver2(cx - drawfanwei, cy - drawfanwei, (int)mmzoom - 1, out bx, out by);
            NewGisBiao.Help.MathHelp.MyConver2(cx + drawfanwei, cy + drawfanwei, (int)mmzoom - 1, out ex, out ey);
            string t6 = " where (jingdu > " + bx.ToString() + " and jingdu<"
                               + ex.ToString() + " and weidu > "
                               + ey.ToString() + " and weidu < "
                               + by + ")";
            MySqlCommand cmd = Con.CreateCommand();
            cmd.CommandText = "select * from gw_shigu" + t6;
            MySqlDataReader read = cmd.ExecuteReader();
 
            try
            {
 
 
                if (read.HasRows)
                {
                    List<DrawPointData> y1 = new List<DrawPointData>();
                    while (read.Read())
                    {
                        if (MData.ContainsKey(read["number"].ToString() + "A") == false)
                        {
 
                            DrawPointData u1 = new DrawPointData();
 
                            u1.ISAutoAngle = true;
                            u1.ISAutoScal = true;
                            u1.MaxZoomScal = 15;
 
 
                            u1.ID = read["number"].ToString() + "A";
                            u1.MPoint = new Point(Convert.ToDouble(read["jingdu"].ToString()), Convert.ToDouble(read["weidu"].ToString()));
                            Image h1 = new Image();
                            u1.Hi = 0.05;
                            h1.Width = 45;
                            h1.Height = 70;
                            if (read["sgtype"].ToString().Trim() == "重伤")
                                h1.Source = new BitmapImage(new Uri(AppDomain.CurrentDomain.BaseDirectory + "\\res\\重伤.png"));
                            if (read["sgtype"].ToString().Trim() == "轻伤")
                                h1.Source = new BitmapImage(new Uri(AppDomain.CurrentDomain.BaseDirectory + "\\res\\轻伤.png"));
                            if (read["sgtype"].ToString().Trim() == "无伤")
                            {
                                BitmapImage u11 = new BitmapImage(new Uri(AppDomain.CurrentDomain.BaseDirectory + "\\res\\无伤.png"));
                                h1.Source = u11;
                                h1.Width = u11.Width;
                                h1.Height = u11.Height;
                            }
                            h1.Stretch = Stretch.Fill;
 
 
                            h1.Tag = read["number"].ToString() + ";" + u1.MPoint.X.ToString() + ";" + u1.MPoint.Y.ToString();
                            u1.UIObject = h1;
                            y1.Add(u1);
                        }
                    }
                    read.Close();
                  
                    return y1;
                }
                read.Close();
                return null;
            }
            catch
            {
                read.Close();
                return null;
            }
 
 
 
 
        }
上面的方法主要是从接口返回的中心点得到一 个范围内的用户数据,并根据用户的属性创建不同的UI,
————————————————

http://www.yayakq.cn/news/800284/

相关文章:

  • 做视频网站采集需要多大的空间做网站哪里学
  • 企业网官方网站网络营销是什么样的
  • 中企动力 网站模板中国机床行业
  • 专注赣州网站建设个人做的好的淘宝客网站
  • 做网站在阿里云买什么软件合肥网站制作公司排名
  • 大良营销网站建设价格合肥网站系统建设公司
  • 九江网站建设服务网站建设岗位职责怎么写
  • wordpress怎么搭建分享网站做外贸网站好还是内贸网站好
  • 建设大型网站推广收费开源视频网站
  • 北京网站seo设计#NAME?
  • 企业网站网页尺寸学校网站的建设目标
  • 长宁区网站建设网银川网站设计建设
  • 网站模板中心网站和域名区别吗
  • 网站常用的优化方法东盟建设工程有限公司网站
  • 医院网站那里填评价偃师网站
  • 找网站设计公司 看那些潍坊优化排名推广
  • dede网站版权信息修改重庆建设招标网站
  • 长沙专业建网站中铁建设集团有限公司网站
  • 贵阳仿站定制模板建站百度网页版在线使用
  • 对网站建设的讲话h5类作品是什么意思
  • 15年做哪个网站能致富淘宝请人做网站被骗
  • 仿制别人的竞价网站做竞价犯法吗德州做网站最好的公司有哪些
  • python 网站开发 prf想做网站去哪里做
  • 建设部证书查询官方网站公司网站建设维护及使用管理办法
  • 网站宣传片的创意查看网站是什么语言做的
  • 网站设计公司成都电子商务网站建设臧良运课后答案
  • 阿里云 ip 网站个人网站需要备案
  • 网站内容框架app专业定制开发
  • 做瞹瞹瞹免费网站企业建设网站有用么
  • 黑人与白人做爰网站wordpress首页名称