<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-348  評(píng)論-598  文章-0  trackbacks-0

    添加相應(yīng)工具

                //添加自定義測(cè)量距離
                mapControl.Tools.Add("DistanceTool"new CustomPolylineMapTool(truetruetrue, mapControl.Viewer, mapControl.Handle.ToInt32(), mapControl.Tools, mapControl.Tools.MouseToolProperties, mapControl.Tools.MapToolProperties));

                
    //添加自定義測(cè)量面積
                mapControl.Tools.Add("AreaTool"new CustomPolygonMapTool(truetruetrue, mapControl.Viewer, mapControl.Handle.ToInt32(), mapControl.Tools, mapControl.Tools.MouseToolProperties, mapControl.Tools.MapToolProperties));

    在工具條上添加相應(yīng)的按鈕,并捕捉當(dāng)前按鈕
            /// <summary>
            
    /// 當(dāng)點(diǎn)擊工具欄上的按鈕時(shí)
            
    /// </summary>
            
    /// <param name="sender"></param>
            
    /// <param name="e"></param>

            private void mapToolBar_ButtonClick(object sender, ToolBarButtonClickEventArgs e)
            
    {
                
    try {
                    
    string btnName = e.Button.Name;
                    
    switch (btnName)
                    
    {
                        
    case "toolBarButtonDistanceTool"://當(dāng)點(diǎn)擊“測(cè)量距離”按鈕時(shí)
                            mapControl.Tools.LeftButtonTool = CustomMapTools.DistanceTool;
                            
    break;
                        
    case "toolBarButtonAreaTool"://當(dāng)點(diǎn)擊“測(cè)量面積”按鈕時(shí)
                            mapControl.Tools.LeftButtonTool = CustomMapTools.AreaTool;
                            
    break;
                        
    case "toolBarButtonFullScreen":
                            SetFullScreen(
    true);
                            
    break;
                        
    case "toolBarButtonNormalScreen":
                            SetFullScreen(
    false);
                            
    break;
                        
    case "toolBarButtonMapEye":
                            SetViewMenuItemChecked(eyeUserMapControl, 
    !鷹眼欄ToolStripMenuItem.Checked);
                            
    break;
                        
    default:
                            
    break;

                    }

                }
    catch(Exception ex) {
                    GlobalHelper.ShowError(ex.Message);
                }

            }

    當(dāng)鼠標(biāo)移到地圖上的時(shí)候,相應(yīng)功能開(kāi)始工作
            /// <summary>
            
    /// 當(dāng)選擇相應(yīng)工具在地圖控件上進(jìn)行操作時(shí)
            
    /// </summary>
            
    /// <param name="sender"></param>
            
    /// <param name="e"></param>

            private void Tools_Used(object sender, MapInfo.Tools.ToolUsedEventArgs e)
            
    {
                
    try
                
    {
                    
    switch (e.ToolName)
                    
    {
                        
    //測(cè)量距離
                        case CustomMapTools.DistanceTool:
                            
    switch (e.ToolStatus)
                            
    {
                                
    case ToolStatus.Start:
                                    dblDistance 
    = 0;
                                    dptStart 
    = e.MapCoordinate;
                                    
    break;
                                
    case ToolStatus.InProgress:
                                    dblDistance 
    += CoordSys.Distance(DistanceType.Spherical, map.Zoom.Unit, map.GetDisplayCoordSys(), dptStart, e.MapCoordinate);
                                    SetStatusStripMessage(
    "總長(zhǎng)度為:" + string.Format("{0:F3}", dblDistance) + " " + CoordSys.DistanceUnitAbbreviation(map.Zoom.Unit).ToString());
                                    dptStart 
    = e.MapCoordinate;
                                    
    break;
                                
    case ToolStatus.End:
                                    dblDistance 
    += CoordSys.Distance(DistanceType.Spherical, map.Zoom.Unit, map.GetDisplayCoordSys(), dptStart, e.MapCoordinate);
                                    SetStatusStripMessage(
    "總長(zhǎng)度為:" + string.Format("{0:F3}", dblDistance) + " " + CoordSys.DistanceUnitAbbreviation(map.Zoom.Unit).ToString());
                                    map.Invalidate(
    true);
                                    
    break;
                                
    default:
                                    
    break;
                            }

                            
    break;
                        
    //測(cè)量面積
                        case CustomMapTools.AreaTool:
                            
    switch (e.ToolStatus)
                            
    {
                                
    case ToolStatus.Start:
                                    arrlstPoints.Clear();
                                    dptFirstPoint 
    = e.MapCoordinate;
                                    arrlstPoints.Add(e.MapCoordinate);
                                    
    break;
                                
    case ToolStatus.InProgress:
                                    arrlstPoints.Add(e.MapCoordinate);
                                    
    break;
                                
    case ToolStatus.End:
                                    
    //構(gòu)造一個(gè)閉合環(huán)
                                    arrlstPoints.Add(e.MapCoordinate);
                                    
    int intCount = arrlstPoints.Count;
                                    
    if (intCount <= 3)
                                    
    {
                                        SetStatusStripMessage(
    "請(qǐng)畫3個(gè)以上的點(diǎn)形成面來(lái)測(cè)量你所要的面積");
                                        
    return;
                                    }

                                    DPoint[] dptPoints 
    = new DPoint[intCount];
                                    
    for (int i = 0; i <= intCount - 1; i++)
                                    
    {
                                        dptPoints[i] 
    = (DPoint)arrlstPoints[i];

                                    }

                                    dptPoints[intCount 
    - 1= dptFirstPoint;

                                    
    //用閉合的環(huán)構(gòu)造一個(gè)面        
                                    AreaUnit costAreaUnit;
                                    costAreaUnit 
    = CoordSys.GetAreaUnitCounterpart(map.Zoom.Unit);
                                    CoordSys objCoordSys 
    = this.map.GetDisplayCoordSys();
                                    Polygon objPolygon 
    = new Polygon(objCoordSys, CurveSegmentType.Linear, dptPoints);
                                    
    //if (objPolygon == null)
                                    
    //    return;
                                    SetStatusStripMessage("總面積為:" + string.Format("{0:F3}", objPolygon.Area(costAreaUnit)) + "  " + CoordSys.AreaUnitAbbreviation(costAreaUnit));
                                    map.Invalidate(
    true);
                                    
    break;
                                
    default:
                                    
    break;
                            }

                            
    break;
                        
    //可以添加其他的用戶自定義Tool
                        default:
                            
    break;
                    }

                }

                
    catch (Exception Ex)
                
    {
                    GlobalHelper.ShowError(
    "測(cè)量錯(cuò)誤:" + Ex.Message.ToString());
                }
                
            }


    ---------------------------------------------------------
    專注移動(dòng)開(kāi)發(fā)

    Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian
    posted on 2008-02-25 14:30 TiGERTiAN 閱讀(2633) 評(píng)論(3)  編輯  收藏 所屬分類: DotNetMapXtreme

    評(píng)論:
    # re: Mapxtreme 添加自定義工具,測(cè)量距離,測(cè)量面積等等 2010-02-22 13:27 | eee
    您好,請(qǐng)問(wèn)CustomMapTools是命名空間嗎?需要引用那個(gè)呢  回復(fù)  更多評(píng)論
      
    # re: Mapxtreme 添加自定義工具,測(cè)量距離,測(cè)量面積等等 2010-02-22 14:12 | TiGERTiAN
    @eee
    是一個(gè)類或枚舉的名稱  回復(fù)  更多評(píng)論
      
    # re: Mapxtreme 添加自定義工具,測(cè)量距離,測(cè)量面積等等 2011-01-26 10:52 | 東方未明
    好文章,幫大忙了,頂一下!
    此外,CustomMapTools我也不太清楚樓主是什么意思,好像MapXtream中沒(méi)有此命名空間或類,我采用下面的調(diào)用方法也可以正常工作:
    mapControl.Tools.LeftButtonTool = "DistanceTool"; // MapControl mapControl  回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 男女交性永久免费视频播放| 国产亚洲精品激情都市| 精品亚洲一区二区三区在线播放| 亚洲国产精品久久| 国产精品久久久久久亚洲影视| 最近的2019免费中文字幕| 三年片在线观看免费观看高清电影 | 在线观看亚洲一区二区| 男男gvh肉在线观看免费| 全部免费毛片在线播放| 无码欧精品亚洲日韩一区夜夜嗨 | 亚洲国产精品免费在线观看| 免费一区二区视频| 亚洲综合免费视频| 免费在线观看一区| 中字幕视频在线永久在线观看免费| 久久影视综合亚洲| 亚洲欧美国产日韩av野草社区| 国产免费无码一区二区| 又黄又爽一线毛片免费观看 | 亚洲成AV人片久久| 中文字幕永久免费视频| 永久免费无码网站在线观看| 久久精品国产亚洲av高清漫画 | 免费人成在线观看网站品爱网日本| 日韩亚洲Av人人夜夜澡人人爽| 无码毛片一区二区三区视频免费播放| 97视频免费在线| 五月天网站亚洲小说| 老司机福利在线免费观看| 丁香花免费高清视频完整版| 亚洲AV无码成人精品区蜜桃| 免费一级毛suv好看的国产网站 | 中文字幕免费在线看线人动作大片| 免费看a级黄色片| 亚洲人妖女同在线播放| 久久成人免费电影| 亚洲中文字幕无码永久在线| 羞羞漫画页面免费入口欢迎你| 毛片a级毛片免费观看品善网| 亚洲综合一区二区|