GMap地图的加载和现实
2017-01-03 09:35
721 查看
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控件,不用自己添加了),代码如下:
2、编译项目,这样我们在工具箱中就可以找到我们自己的用户控件。
3、在主窗体中添加MapControl控件。
4、在主窗体中添加代码:
这里有一些关键属性需要解释一下:
MapProvider 确定地图提供者,经过测试,goolechina比较优秀,其他的无法加载地图。
MinZoom 控制地图最小比例。
MaxZoom 控制地图最大比例。
Zoom 控制当前比例
mapControl1.DragButton = System.Windows.Forms.MouseButtons.Left;这句解释一下,因为GMap的操作中默认是右键拖动的,但是不符合一般的用户习惯,所以在这里设置为左键拖动。
Position 控制初始中心位置
当然还有图层marker的概念,下次在写。
好了,现在可以编译运行一下这个GMap的小程序,它是一个缩放为10,中心为南京,没有红叉叉,右键显示经纬度的小东西。
现在我们来谈谈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的介绍与使用可以看我以前的文章:
- ArcGIS Runtime SDK for iOS 开发之加载地图
- 使用openlayers 3 在线加载天地图及GeoServer发布的地图
- OpenLayers学习一:地图加载(以类为接口)
- 百度地图-同时加载多张地图
- Android OSM无法加载地图
- /// 地图加载错误时显示错误信息
- 基于地图开发控件GMap.Net 使用 (五) 原创 用户自定义标签图片
- Arcmap中加载互联网地图资源
- 在Arcmap中加载互联网地图资源的4种方法
- 地图控件GMAP.NET
- 百度地图API详解之地图API加载方式
- OpenLayers-加载地图数据(Google Map)
- ArcGIS API for JavaScript 地图加载空白现象-ArcGIS Web 开发学习(三)
- GMap.NET开发技巧- 开发可以根据地图放大缩小而缩放的图元
- 制作百度地图离线JavaScript API加载本地瓦片地图
- VC++环境下Mapx地图的加载
- BlueViewer 地图加载分析(C#)
- 安卓开发之地图加载
- Leaflet+heatmap实现离线地图加载和热力图应用