目录

​编辑

1.环境

2. NuGet导入依赖

3.  添加MapControl类

4. 编辑MainView.xaml.cs

5. 编辑MainView.xaml

6. 启动验证


源码: https://github.com/liugang198409/WpfDemo/tree/master/GMapDemo

视频:WPF编程--地图控件GMap_哔哩哔哩_bilibili

1.环境

VVisual Studio 2019 + .NET Framework 4.8.1

2. NuGet导入依赖

导入依赖GMap.NET.Presentation

3.  添加MapControl类

using GMap.NET;
using GMap.NET.MapProviders;
using GMap.NET.Projections;
using GMap.NET.WindowsPresentation;
using System;namespace GMapDemo
{public class MapControl : GMapControl{public long ElapsedMilliseconds;}public abstract class AMapProviderBase : GMapProvider{public AMapProviderBase(){MaxZoom = null;RefererUrl = "https://www.amap.com/";}public override PureProjection Projection{get { return MercatorProjection.Instance; }}GMapProvider[] overlays;public override GMapProvider[] Overlays{get{if (overlays == null){overlays = new GMapProvider[] { this };}return overlays;}}}public class AMapProvider : AMapProviderBase{public static readonly AMapProvider Instance;readonly Guid id = new Guid("EF3DD303-3F74-4938-BF40-232D0595EE88");public override Guid Id{get { return id; }}readonly string name = "AMap";public override string Name{get{return name;}}static AMapProvider(){Instance = new AMapProvider();}public override PureImage GetTileImage(GPoint pos, int zoom){string url = MakeTileImageUrl(pos, zoom, LanguageStr);return GetTileImageUsingHttp(url);}string MakeTileImageUrl(GPoint pos, int zoom, string language){//string url = string.Format(UrlFormat, num, pos.X, pos.Y, zoom);string url = string.Format(UrlFormat, pos.X, pos.Y, zoom);Console.WriteLine("url:" + url);return url;}//static readonly string UrlFormat = "http://webrd04.is.autonavi.com/appmaptile?x={0}&y={1}&z={2}&lang=zh_cn&size=1&scale=1&style=7";static readonly string UrlFormat = "http://webrd01.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={0}&y={1}&z={2}";} }

4. 编辑MainView.xaml.cs

using GMap.NET;
using System;
using System.Windows;
using System.Windows.Input;namespace GMapDemo
{/// <summary>/// MainWindow.xaml 的交互逻辑/// </summary>public partial class MainWindow : Window{public MainWindow(){InitializeComponent();Rect rc = SystemParameters.WorkArea; //获取工作区大小this.Left = 0; //设置位置this.Top = 0;this.Width = rc.Width;this.Height = rc.Height;this.Map_Loaded();//加载地图}private void Map_Loaded(){try{System.Net.IPHostEntry e = System.Net.Dns.GetHostEntry("ditu.google.cn");}catch{MainMap.Manager.Mode = AccessMode.CacheOnly;System.Windows.MessageBox.Show("没有可用的internet连接,正在进入缓存模式!", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);}MainMap.CacheLocation = Environment.CurrentDirectory + "\\GMapCache\\"; //缓存位置MainMap.MapProvider = AMapProvider.Instance; //加载高德地图MainMap.MinZoom = 2;  //最小缩放MainMap.MaxZoom = 17; //最大缩放MainMap.Zoom = 8;     //当前缩放MainMap.ShowCenter = false; //不显示中心十字点MainMap.DragButton = MouseButton.Left; //右键拖拽地图MainMap.Position = new PointLatLng(39.909149, 116.397486); //地图中心位置:北京//MainMap.MouseLeftButtonDown += new MouseButtonEventHandler(mapControl_MouseLeftButtonDown);}}
}

5. 编辑MainView.xaml

<Window x:Class="GMapDemo.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:src="clr-namespace:GMapDemo"xmlns:local="clr-namespace:GMapDemo"mc:Ignorable="d"Title="MainWindow" Height="450" Width="800"><Grid><src:MapControl Grid.Row="0" x:Name="MainMap" Zoom="13" MaxZoom="24" MinZoom="1"/></Grid>
</Window>

6. 启动验证

WPF编程--地图控件GMap使用相关推荐

  1. 深入理解最强桌面地图控件GMAP.NET --- 百度地图

    转 http://www.cnblogs.com/enjoyeclipse/archive/2013/01/14/2859026.html 前两篇介绍了GMAP.NET的一些基本功能和如何在自己的项目 ...

  2. (转)深入理解最强桌面地图控件GMAP.NET --- 原理篇

    前几篇介绍了一些国内地图的案例, 深入理解最强桌面地图控件GMAP.NET --- SOSO地图 深入理解最强桌面地图控件GMAP.NET --- 百度地图 我们以Google地图为例,这章介绍下地图 ...

  3. 深入理解最强桌面地图控件GMAP.NET --- SOSO地图

    转 http://www.cnblogs.com/enjoyeclipse/archive/2013/01/15/2859028.html 前三篇介绍了GMAP.NET的一些基本功能以及如何集成一个百 ...

  4. (转)深入理解最强桌面地图控件GMAP.NET --- SOSO地图

    前三篇介绍了GMAP.NET的一些基本功能以及如何集成一个百度地图. 深入理解最强桌面地图控件GMAP.NET --- 初识 深入理解最强桌面地图控件GMAP.NET --- 初用 深入理解最强桌面地 ...

  5. 深入理解最强桌面地图控件GMAP.NET --- 原理篇

    转 http://www.cnblogs.com/enjoyeclipse/archive/2013/01/18/2865700.html 前几篇介绍了一些国内地图的案例, 深入理解最强桌面地图控件G ...

  6. 深入理解最强桌面地图控件GMAP.NET ---高德地图

    前一篇介绍了GMAP.NET的理论基础,这篇介绍如何集成高德地图.高德地图自从为IOS6提供地图后,目前已经被大众所熟知了. 在我集成国内地图的经验来看,也是最符合墨卡托投影法的. 前面的相关文章链接 ...

  7. (转)深入理解最强桌面地图控件GMAP.NET ---离线地图

    这章会介绍GMAP.NET的核心功能之一:离线地图.这个功能可以满足很多政府项目.保密项目.或者由于种种原因不能上网的项目的需求. 本章主要分成三个方面介绍:演示.生成离线地图.Demo代码. 一.演 ...

  8. 深入理解最强桌面地图控件GMAP.NET ---离线地图

    转 http://www.cnblogs.com/enjoyeclipse/archive/2013/01/29/2882254.html 这章会介绍GMAP.NET的核心功能之一:离线地图.这个功能 ...

  9. 入理解最强桌面地图控件GMAP.NET ---离线地图

    http://www.cnblogs.com/enjoyeclipse/archive/2013/01/31/2882254.html 介绍GMAP.NET的核心功能之一:离线地图.这个功能可以满足很 ...

最新文章

  1. 不改文件名的情况下上传突破
  2. 【Paper】2017_水下潜航器编队海洋勘测的协调控制方法研究
  3. python配置日志的几种方式
  4. 安装python应该先安装pycharm还是python_Pycharm及python安装详细步骤及PyCharm配置整理(推荐)...
  5. 在两个静态HTML页面之间传递参数的一个方法
  6. phpMyAdmin 安装错误解决方法
  7. 成都python数据分析师职业技能_数据分析师需要什么技能,数据分析行业都有什么职业?...
  8. 剑指Offer04. 二维数组中的查找
  9. 操作元素之修改元素属性
  10. DjVu Reader Pro for Mac(DjVu阅读软件)
  11. 进行 HTML、JavaScript 和 Ajax 开发和调试的必用工具
  12. 电脑窗口切换常用的快捷键有哪些
  13. 两台主机如何共享一套键鼠一台显示器?
  14. 激活码方式注册的实现原理述
  15. 美国enom域名的优势
  16. 前端框架千千万,抓住两条主线成一半
  17. 计算机二级主要是学什么,计算机二级考试内容是什么
  18. ucweb7.0 for WM/PPC/SP/S60V1/S60V2/S60V3/S60V5/ 平台安装包下载
  19. html转盘游戏代码,html5 转盘 例子 附完整源码 有截图 亲测通过
  20. Linux NFS服务

热门文章

  1. 十四五期间我国区块链技术趋势特征分析
  2. 计算机工程与科学是sci,系统科学与系统工程有哪些sci期刊
  3. 小程序如何开通微信支付?
  4. pycharm(python)的注释
  5. Word2Vec-VS-fastText
  6. 可能是全网最详细的python安装教程(windows),小白建议收藏
  7. Linux命令基础操作字典
  8. 算法练习 Week1
  9. 如何将List集合存入数据库,解决方案
  10. FusionCharts Free