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);
}
}
}
}
|