// 默认地标绘制图层
private AZMapOverlay _defaultMarkersLayer = new AZMapOverlay("DEFAULT_MARKERS_LAYER_" + Guid.NewGuid());
private void InitMapControl()
{
// 天地图2019年开始访问服务需要设置秘钥,若要使用天地图,请至官网申请开发许可
// http://lbs.tianditu.gov.cn/authorization/authorization.html
// 申请后,请修改输出目录的ConfigUser.xml文件里的KeyTianditu字段(软件默认设置了太乐地图申请的秘钥)
// 打开天地图卫星地图
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); //定位在中国区域
MapControl.Overlays.Add(_defaultMarkersLayer);
}
/// <summary>
/// IP精准定位(显示用户当前所在位置,该功能需要联网支持)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button6_Click(object sender, EventArgs e)
{
_defaultMarkersLayer.Markers.Clear(); // 先清除图层
// 调用百度地图IP定位接口
var ipPlace = IPLocationTool.BaiduIpLocation();
if (!ipPlace.Point.IsEmpty)
{
MapControl.Position = ipPlace.Point;
MapControl.Zoom = 16;
// 绘制一个小圆显示用户所在位置
var marker = new AZMapMarkerEllipse(ipPlace.Point) // 新建一个Marker地标对象
{
IsHitTestVisible = false,
EnableRightClick = false, // 是否允许右击
Fill = new SolidBrush(Color.FromArgb(155, Color.Blue)), // 填充颜色
Pen = new Pen(Brushes.Red, 4) // 边线颜色和大小
};
_defaultMarkersLayer.Markers.Add(marker); // 在图层中添加
MessageBox.Show("定位成功!");
}
else
{
MessageBox.Show("定位失败!");
}
}
|