C#+ArcEngine开发获取当前地图的XY坐标和比例尺,以度的形式在状态栏显示坐标,平面坐标转为球面坐标

12 篇文章 1 订阅
 private void axMapControl1_OnMouseMove(object sender, ESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseMoveEvent e)
        {
            //当前比例尺
            barStaticItem1.Caption = "   1:" + ((long)axMapControl1.MapScale).ToString() + "  ";
            IProjectedCoordinateSystem pcs = this.axMapControl1.SpatialReference as IProjectedCoordinateSystem;
            //定义点
            WKSPoint pt = new WKSPoint(); //不能用IPoint pt = new PointClass();因为后面的方法只支持WKSPoint
            pt.X = e.mapX;
            pt.Y = e.mapY;
            double d1, n1, m1, L1, d2, n2, m2, L2;
            pcs.Inverse(1, ref pt); //将平面坐标转换为地理坐标                 
            d1 = pt.X / 1;//度的整数部分                 
            n1 = pt.X % 1;//度的小数部分                 
            m1 = (n1 * 60) / 1;//分                 
            L1 = ((n1 * 60) % 1) * 60;//秒                 
            d2 = pt.Y / 1;//纬度的整数部分                 
            n2 = pt.Y % 1;//度的小数部分                 
            m2 = (n2 * 60) / 1;//分  
            string m22;
            if (m2 < 10)
                m22 = "0" + m2.ToString();
            else
                m22 = m2.ToString();
            L2 = ((n2 * 60) % 1) * 60;//秒 
            try
            {
                barEditItem_X.EditValue = d1.ToString().Remove(3) + "°" + m1.ToString().Remove(2) + " '" + L1.ToString().Remove(6) + "\"" + "E ";
                barEditItem_Y.EditValue = d2.ToString().Remove(2) + "°" + m22.Remove(2) + " '" + L2.ToString().Remove(6) + "\"" + "N ";
            }
            catch (Exception)
            {

                barEditItem_X.EditValue = "0";
                barEditItem_Y.EditValue = "0";
            }
           
        }

首先给mapcontrol添加鼠标移动的事件,写上面代码,可以显示XY坐标和比例尺。效果如下图:


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值