GMap.NET是一个强大、免费、跨平台、开源的.NET控件,它在Windows Forms 和WPF环境中能够使用来自Google, Yahoo!, Bing, OpenStreetMap, ArcGIS, Pergo, SigPac等地图,并可以实现寻找路径、地理编码以及地图展示功能,并支持缓存和运行在Mobile环境中。
现在我们来谈谈GMap的加载。
1、下载dll文件。
GMap主页
其中有三类dll,一定要下载的是.core其余连个根据项目的开发需要下载,因为我使用的是winfrom开发,所以下载的是前两个。
GMap.Net.Core:核心DLL
GMap.Net.WindowsForms:WinForm中使用的DLL
GMap.NET.WindowsPresentation:WPF中使用的DLL
2、添加对dll的引用
新建项目后再项目的引用中添加关于GMap的引用

3、将GMap添加到工具箱
GMap说到底是个控件,要对她方便的使用,工具箱是必不可少的
首先在工具箱中打开选择项

选择.NET Framework组件,筛选或自己找到GMapControl控件选择添加。
如果没有,就打开浏览,添加该组件。

4、从工具箱中使用
到现在,我们终于可以在工具箱中找到我们的GMapControl控件了。

现在我们来谈谈GMap的基本实现
1、我们新建一个MapControl的用户控件,让他继承自GMapControl(这样他就自动获取了GMap控件,不用自己添加了),代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using GMap.NET.WindowsForms;namespace GMap
{public partial class MapControl : GMapControl{public MapControl(){InitializeComponent();}}
}

2、编译项目,这样我们在工具箱中就可以找到我们自己的用户控件。
3、在主窗体中添加MapControl控件。
4、在主窗体中添加代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using GMap.NET;
using GMap.NET.WindowsForms;
using GMap.NET.MapProviders;
using GMap.NET.WindowsForms.Markers;namespace GMap
{public partial class MapFrom : Form{private GMapOverlay markersOverlay = new GMapOverlay("markers");//放置marker的图层public MapFrom(){InitializeComponent();try{System.Net.IPHostEntry e = System.Net.Dns.GetHostEntry("ditu.google.cn");}catch{mapControl1.Manager.Mode = AccessMode.CacheOnly;MessageBox.Show("no internet connection avaible avaible ,goning to CacheOnly mode", "GMap.NET Demo", MessageBoxButtons.OK);}mapControl1.CacheLocation = Environment.CurrentDirectory + "\\GMApCache\\";//缓存位置mapControl1.MapProvider = GMapProviders.GoogleChinaMap;//googlechina地图mapControl1.MinZoom = 2;//最小比例mapControl1.MaxZoom = 24;//最大比例mapControl1.Zoom = 10;//当前比例mapControl1.ShowCenter = false;//不显示中心十字点mapControl1.DragButton = System.Windows.Forms.MouseButtons.Left;//左键控制拖拽地图mapControl1.Position = new PointLatLng(32.064, 118.704);//中心位置南京mapControl1.Overlays.Add(markersOverlay);   mapControl1.MouseClick += new MouseEventHandler(mapControl1_MouseClick);}private void mapControl1_MouseClick(object sender, MouseEventArgs e){if(e.Button==System.Windows.Forms.MouseButtons.Right){PointLatLng point = mapControl1.FromLocalToLatLng(e.X, e.Y);GMapMarker marker = new GMarkerGoogle(point, GMarkerGoogleType.green);markersOverlay.Markers.Add(marker);MessageBox.Show(point.ToString());}}}
}

这里有一些关键属性需要解释一下:
MapProvider 确定地图提供者,经过测试,goolechina比较优秀,其他的无法加载地图。
MinZoom 控制地图最小比例。
MaxZoom 控制地图最大比例。
Zoom 控制当前比例
mapControl1.DragButton = System.Windows.Forms.MouseButtons.Left;这句解释一下,因为GMap的操作中默认是右键拖动的,但是不符合一般的用户习惯,所以在这里设置为左键拖动。
Position 控制初始中心位置
当然还有图层marker的概念,下次在写。
好了,现在可以编译运行一下这个GMap的小程序,它是一个缩放为10,中心为南京,没有红叉叉,右键显示经纬度的小东西。

GMap地图的加载和现实相关推荐

  1. 高德地图 sdk 加载 geoserver 发布的瓦片地图服务

    前言 最近,碰到了需求,想要在高德 sdk 中使用在 geoserver 里面发布的瓦片地图. 还好经过一番研究,在其官方文档中发现,从新版本(v1.4.3开始)的高德 sdk 开始,已经支持加载第三 ...

  2. ios 高德地图加载瓦片地图_IOS 高德地图 API 加载 WMS 服务

    IOS 高德地图 API 加载 WMS 服务 本文主要介绍通过自定义高德地图 MATileOverlay 接口,添加 WMS 服务到地图上.废话少说,先贴代码. 代码 自定义类 WMSTileOver ...

  3. 如何解决地图已加载却不能渲染的问题?

    Stack Overflow问题分享 Stack Overflow上有一个海外开发者提问:我在我的项目中使用华为Map Kit,地图已加载但未渲染? 解决方案 一般来说引起地图加载未渲染可能的原因有很 ...

  4. swift 百度地图加载与百度地图电子围栏加载

    最近在写百度地图电子围栏加载,研究源码,也花了一些时间. 1.百度电子围栏整体思路 1)用户创造实体,赋予监控权限 2)对该实体创造电子围栏,有服务端和本地端两种方式,先创造实体,上传到的服务器中.在 ...

  5. 【WebGIS】二、基于Openlayers实现地图的加载与显示

    二.基于Openlayers实现地图的加载与显示 基于上文中配置好的环境,先通过Element Plus实现一个页面的布局,然后基于openlayers加载显示全球瓦片地图. 1. 引入element ...

  6. OGC标准WMTS服务概念与地图商的瓦片编号流派-web地图切片加载

    还不知道地图栅格化切片等相关GIS原理的,推荐阅读<webGIS底图栅格化与实时数据合成处理原理,地图API设计,xyz加载> OGC概念 OGC全称--开放地理空间信息联盟(Open G ...

  7. 如何利用高德地图URI加载区域边界

    高德URI 以下是高德地图API官网中URI API以及行政区查询的相关页面展示.在行政区域查询中对相应的参数也有详细的描述. 利用URI API进行调用的实例:在返回的数据中districts中包含 ...

  8. unity-大地图分块加载研究

    title: unity-大地图分块加载研究 categories: Unity3d tags: [unity, 大地图, 分块, lightmap] date: 2018-12-12 11:22:1 ...

  9. 百度地图调用加载显示Marker,并添加点击事件

    百度地图调用加载显示Marker,并添加点击事件 注册百度开发者账号,申请应用AK 百度地图开发平台官网 点击右上角控制台,选择创建应用 创建应用,勾选浏览器端,白名单填写* 注:如上线更改为公网IP ...

最新文章

  1. 人机交互与智能的思考
  2. js怎么获取访问页数记录(知道的能不能告诉我一下)
  3. python是外部还是编程_Python网络编程(绑定到外部地址)
  4. ubuntu cpp与mysql连接_linux(ubuntu)下C++访问mysql数据库
  5. MongoDB之Java测试代码(DAO层)
  6. 交互式多模型_体系化教学资源上新——小学数学交互式教学工具
  7. 防火墙设置对外开放port
  8. 这个百度网盘批量转存工具真香
  9. acwing算法基础课
  10. Java筑基34-网络编程02-UDP网络编程网络编程案例
  11. 万字干货!《增长黑客》背后的逻辑
  12. 苏大计算机专业就业如何,苏州大学好就业吗?附苏州大学就业率最高的专业名单...
  13. 最新yar扩展安装和使用
  14. Elliptic Curve Cryptography: finite fields and discrete logarithms
  15. RGB图像转换为灰度图像的原理
  16. CI2451无线收发2.4Gsoc芯片集成无线收发器和 8 位 RISC(精简指令集)MCU
  17. 云服务器的主要性能参数,云服务器参数到配置,一文让您从小白到高手
  18. python学习笔记连载
  19. 小程序关联微信公众号如何确定用户的唯一性
  20. 2019年个人在嵌入式领域上的发展思路

热门文章

  1. 【Java】Callable 接口
  2. html文标题党,标题党:如何写出一个SEO与新媒体传播都吸引人的标题! - 蝙蝠侠IT...
  3. 虚拟机Linux系统忘记密码修改root或其他用户密码的方法
  4. 总是封群怎么解决_我的群被封了怎么办
  5. STL系列之四 heap 堆
  6. 【历史上的今天】10 月 20 日:微软黑屏事件;Ubuntu Linux 操作系统发布;Apple Pay 正式上线
  7. 串口接收不定长数据的几种方式
  8. Python安装第三方库方法教程
  9. soul从入门到进阶02——soul-admin的数据同步流程
  10. 新冠疫情数据建模分析