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);
                }
            }
        }

转载于:https://www.cnblogs.com/Madfrog-Cainiao/p/3142863.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值