打开WMTS地图

回到首页  往前  往后

该范例程序会演示如何远程访问 太乐地图下载器 发布的WMTS服务地图。

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

注意2:该功能需要先用 太乐地图下载器 的 服务发布工具 发布WMTS服务

注意3:该范例程序会涉及三方程序集GDAL,不需要添加引用,但必须拷贝至程序输出目录,相关文件如下图所示:

注意4:由于调用了GDAL工具集,需要在程序初始化位置增加GDAL初始化代码:GdalInitUtil.InitAll()

 

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

打开WMTS地图

源码

using AZMap;

using AZMap.MapProviders;

using AZMap.Util;

using System;

using System.IO;

using System.Windows.Forms;

 

namespace WindowsFormsApplication1

{

  public partial class Form1 : Form

   {

      public Form1()

       {

           InitializeComponent();

 

           InitMapControl();

       }

 

      private void InitMapControl()

       {

          // 默认打开天地图卫星地图,如需打开其它地图请先查询MapProvider地图列表名称,并在此处指定即可

           MapControl.MapProvider = AZMapProviders.TiandituHybridMap3857;

          // 设置鼠标左键拖动地图

           MapControl.DragButton = MouseButtons.Left;

          // 设置地图可以放大做小的最小级别和最大级别

           MapControl.MinZoom = MapControl.MapProvider.MinZoom;

           MapControl.MaxZoom = MapControl.MapProvider.MaxZoom == null ? 24 : (int)MapControl.MapProvider.MaxZoom;

          // 设置初始化的级别和位置

           MapControl.Zoom = 4;

           MapControl.Position = new PointLatLng(35.1019340572461, 106.34765625); //定位在中国区域

 

          // 设置GDAL工具初始化,远程访问WMTS服务需要

          GdalInitUtil.InitAll();

       }

 

      /// <summary>

      /// 打开WMTS地图

      /// (支持远程打开 太乐地图下载器 发布的WMTS服务,太乐地图下载器 支持将下载的地图直接发布为标准的OGC:WMTS服务标准,供远程客户端调用)

      /// </summary>

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

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

      private void button2_Click(object sender, EventArgs e)

       {

          try

           {

              // 初始化WMTSMapProvider

              var wmtsProvider = new WMTSMapProvider();

              var setting = new WMTSMapProviderSetting { WMTSUrl = textBox1.Text };

              // 设置服务地址

              /* 设置该WMTS地图服务的图层名等参数,可以不设置

                访问服务地址:http://localhost:9009/arctiler/services/GoogleChinaMap/WMTS

                Layer参数,对应服务描述中的:<ows:Identifier>GoogleChinaMap</ows:Identifier>

                TileMatrixSet参数,对应服务描述中的:<TileMatrixSet>AZMap_GoogleChinaMap</TileMatrixSet>

                DPI参数:以服务发布中选择DPI为准

                如不不设置,默认用服务中第一图层,如果要换图层,需要设置 */

              //setting.Layer = "GoogleChinaMap";

              //setting.TileMatrixSet = "AZMap_GoogleChinaMap";

              //setting.DPI = 90.7;

               wmtsProvider.Initialize(setting);

 

              // 切换地图

               MapControl.MapProvider = wmtsProvider;

               MapControl.ReloadMap();

             

              // 定位到本地地图所在位置和级别

               MapControl.Zoom = wmtsProvider.MinZoom;

               MapControl.Position = wmtsProvider.GetBounds().LocationMiddle;

           }

          catch (Exception ex)

           {

              MessageBox.Show(ex.Message);

           }

       }

   }

}