MapXtreme 隨筆記錄1

最近在用MapXtreme作項目,隨筆記錄備忘。this

聲明:PubMapPara 靜態類,後綴爲靜態類成員變量spa

1.加載地圖code

/// <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.當前鼠標位置的二維座標轉成地圖座標orm

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.設置圖層可選、可編輯blog

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

4.設置圖層可視rem

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

5.控制地圖的縮放範圍string

//地圖視圖發生變化
            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);
                }
            }
        }
相關文章
相關標籤/搜索