zoukankan      html  css  js  c++  java
  • MapXtreme 随笔记录1

    最近在用MapXtreme做项目,随笔记录备忘。

    声明:PubMapPara 静态类,后缀为静态类成员变量

    1.加载地图

    /// <summary>
    /// 地图工作空间文件路径
    /// </summary>
    public static string mapFileName = system.Environment.CurrentDirectory + @"地图6矿车定位.mws";
    
    //加载不同类型的地图文件
    public void LoadMap()
    {
        if (mapFileName.ToLower().EndsWith(MapLoader.FileExtensionGST))//判断加载地图文件类型
                {
                    this.myMapControl.Map.Load(new MapGeosetLoader(mapFileName));//后缀名为gst文件
                }
                else if (mapFileName.ToLower().EndsWith(MapLoader.FileExtensionWOR))//后缀名为mws文件
                {
                    this.myMapControl.Map.Load(new MapWorkSpaceLoader(mapFileName));
                }
                else
                {
                    this.myMapControl.Map.Load(new MapTableLoader(mapFileName));
                } 
    }

    2.当前鼠标位置的二维坐标转成地图坐标

    void myMapControl_MouseClick(object sender, MouseEventArgs e)
            {
                   DPoint myPoint = new DPoint();
                   //浮点数的二维坐标
                   PointF mousePoint = new PointF(e.X, e.Y);
                   //获取当前地图可用于将地图和图层坐标转换成显示坐标以及相反的转换
                   DisplayTransform myDisplayTransform = this.myMapControl.Map.DisplayTransform;
                    //坐标转换
                    myDisplayTransform.FromDisplay(mousePoint, out myPoint);
            }

    3.设置图层可选、可编辑

    FeatureLayer myFeaLayer = (FeatureLayer)this.myMapControl.Map.Layers[aliasName];
    if(myFeaLayer  != null)
    {
           LayerHelper.SetEditable(myFeaLayer, true);
           LayerHelper.SetSelectable(myFeaLayer, true); 
    }

    4.设置图层可视

    FeatureLayer myFeaLayer = (FeatureLayer)this.myMapControl.Map.Layers[aliasName];
    if (myFeaLayer != null)
    {
            myFeaLayer.Enabled = true;
    }

    5.控制地图的缩放范围

    //地图视图发生变化
                myMapControl.Map.ViewChangedEvent += new ViewChangedEventHandler(Map_ViewChangedEvent);
    
    /// <summary>
            /// 地图视图发生变化
            /// </summary>
            void Map_ViewChangedEvent(object sender, ViewChangedEventArgs e)
            {
                //设置地图缩放比例
                LimitZoomValue();
            }
    
    /// <summary>
            /// 限制地图缩放比例
            /// 防止出现地图由于无限缩小无法找到地图的现象
            /// </summary>
            private void LimitZoomValue()
            {
                if (myMapControl.Map != null)
                {
                    if (myMapControl.Map.Zoom.Value < PubMapPara.zoomMax)
                    {
                        myMapControl.Map.Zoom = new MapInfo.Geometry.Distance(PubMapPara.zoomMax, this.myMapControl.Map.Zoom.Unit);
                    }
                    if (myMapControl.Map.Zoom.Value > PubMapPara.zoomMin)
                    {
                        myMapControl.Map.Zoom = new MapInfo.Geometry.Distance(PubMapPara.zoomMin, this.myMapControl.Map.Zoom.Unit);
                    }
                }
            }
  • 相关阅读:
    springboot2.0整合logback日志(详细)
    关于Logstash中grok插件的正则表达式例子
    feign多文件上传
    HBase API(新版本)
    HBase基础知识
    Hive数据操作和数据查询
    Hive数据定义
    Hive基础知识
    Hive安装
    Spark词频统计,求TOP值,文件排序,二次排序
  • 原文地址:https://www.cnblogs.com/Madfrog-Cainiao/p/3142863.html
Copyright © 2011-2022 走看看