基础信息显示

回到首页  往前  往后

该范例程序会演示如何在放大缩小地图的时候显示地图的级别、比例尺和分辨率信息,以及如何在移动鼠标的时候实时显示鼠标的经纬度坐标信息。

注意1:太乐地图.NET控件 名称统一命名为:MapControl

注意2:该范例程序涉及到2个地图事件:OnMapZoomChanged,MouseMove

范例运行后界面如下图所示:

显示基础地图信息

源码

      /// <summary>

      /// 初使化地图控件相关事件

      /// </summary>

      private void InitEvents()

       {

           MapControl.OnMapZoomChanged += MapControl_OnMapZoomChanged;

       }

 

      private const String StatusInfo = "显示级别:{0}     比例尺:{1}     分辨率:{2}";

      /// <summary>

      /// 地图级别改变事件

      /// </summary>

      private void MapControl_OnMapZoomChanged()

       {

          var unit = "米/像素";

          if (MapControl.MapProvider.Projection.EpsgCode == 4326)

           {

               unit = "度/像素";

           }

          double CurrentLevel = MapControl.Zoom;

           label1.Text = String.Format(StatusInfo, CurrentLevel, "1/" +

                   MapControl.MapProvider.Projection.GetLevelScale(

                      int.Parse(CurrentLevel.ToString(CultureInfo.InvariantCulture)))

                       .ToString("#0.00"),

                   MapControl.MapProvider.Projection.GetLevelResolution(

                      int.Parse(CurrentLevel.ToString(CultureInfo.InvariantCulture)))

                       .ToString("#0.0000") + unit);

       }

显示鼠标实时坐标

源码

      /// <summary>

      /// 初使化地图控件相关事件

      /// </summary>

      private void InitEvents()

       {

           MapControl.MouseMove += MapControl_OnMouseMove;

       }

 

      /// <summary>

      /// 鼠标在地图上移动事件

      /// </summary>

      /// <param name="sender"></param>

      /// <param name="e"></param>

      private void MapControl_OnMouseMove(object sender, MouseEventArgs e)

       {

          // 显示鼠标实时坐标

          var p = MapControl.FromLocalToLatLng(e.X, e.Y);

           label2.Text = String.Format("X={0}   Y={1}", p.Lng.ToString("#0.000000"), p.Lat.ToString("#0.000000"));

       }