using AZMap;
using AZMap.MapProviders;
using AZMap.Util;
using System.Collections.Generic;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
// 初始化坐标纠偏工具(只需初始化一次,因此作为全局变量)
RectifyTool rectifyTool = RectifyTool.Instance;
public Form1()
{
InitializeComponent();
InitMapControl();
}
private void InitMapControl()
{
// 打开天地图卫星地图
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); //定位在中国区域
}
private void button1_Click(object sender, System.EventArgs e)
{
if (string.IsNullOrEmpty(textBox1.Text) || string.IsNullOrEmpty(textBox2.Text))
{
MessageBox.Show("请输入经纬度坐标");
return;
}
// 读取需要转换的经纬度坐标
double lng = double.Parse(textBox1.Text);
double lat = double.Parse(textBox2.Text);
var wgs = new List<PointLatLng> { new PointLatLng(lat, lng) };
// 坐标纠偏
// 支持WGS84、GCJ02、BD09三种标准互转,并且支持批量高速转换
// WGS84转:
// GCJ02请调用接口:WGS84ListToGCJ02或WGS84ToGCJ02
// BD09请调用接口:WGS84ListToBD09或WGS84ToBD09
// GCJ02转:
// WGS84请调用接口:GCJ02ListToWGS84或GCJ02ToWGS84
// BD09请调用接口:GCJ02ListToBD09或GCJ02ToBD09
// BD09转:
// WGS84请调用接口:BD09ListToWGS84或BD09ToWGS84
// GCJ02请调用接口:BD09ListToGCJ02或BD09ToGCJ02
// 此处将WGS84经纬度坐标转换为GCJ02标准
List<PointLatLng> mar = rectifyTool.WGS84ListToGCJ02(wgs);
if (wgs != null)
{
MessageBox.Show(string.Format("转换后的坐标为:X={0} Y={1}", mar[0].Lng.ToString(), mar[0].Lat.ToString()));
}
}
}
}
|