GMap地图的加载和现实
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地图的加载和现实相关推荐
- 高德地图 sdk 加载 geoserver 发布的瓦片地图服务
前言 最近,碰到了需求,想要在高德 sdk 中使用在 geoserver 里面发布的瓦片地图. 还好经过一番研究,在其官方文档中发现,从新版本(v1.4.3开始)的高德 sdk 开始,已经支持加载第三 ...
- ios 高德地图加载瓦片地图_IOS 高德地图 API 加载 WMS 服务
IOS 高德地图 API 加载 WMS 服务 本文主要介绍通过自定义高德地图 MATileOverlay 接口,添加 WMS 服务到地图上.废话少说,先贴代码. 代码 自定义类 WMSTileOver ...
- 如何解决地图已加载却不能渲染的问题?
Stack Overflow问题分享 Stack Overflow上有一个海外开发者提问:我在我的项目中使用华为Map Kit,地图已加载但未渲染? 解决方案 一般来说引起地图加载未渲染可能的原因有很 ...
- swift 百度地图加载与百度地图电子围栏加载
最近在写百度地图电子围栏加载,研究源码,也花了一些时间. 1.百度电子围栏整体思路 1)用户创造实体,赋予监控权限 2)对该实体创造电子围栏,有服务端和本地端两种方式,先创造实体,上传到的服务器中.在 ...
- 【WebGIS】二、基于Openlayers实现地图的加载与显示
二.基于Openlayers实现地图的加载与显示 基于上文中配置好的环境,先通过Element Plus实现一个页面的布局,然后基于openlayers加载显示全球瓦片地图. 1. 引入element ...
- OGC标准WMTS服务概念与地图商的瓦片编号流派-web地图切片加载
还不知道地图栅格化切片等相关GIS原理的,推荐阅读<webGIS底图栅格化与实时数据合成处理原理,地图API设计,xyz加载> OGC概念 OGC全称--开放地理空间信息联盟(Open G ...
- 如何利用高德地图URI加载区域边界
高德URI 以下是高德地图API官网中URI API以及行政区查询的相关页面展示.在行政区域查询中对相应的参数也有详细的描述. 利用URI API进行调用的实例:在返回的数据中districts中包含 ...
- unity-大地图分块加载研究
title: unity-大地图分块加载研究 categories: Unity3d tags: [unity, 大地图, 分块, lightmap] date: 2018-12-12 11:22:1 ...
- 百度地图调用加载显示Marker,并添加点击事件
百度地图调用加载显示Marker,并添加点击事件 注册百度开发者账号,申请应用AK 百度地图开发平台官网 点击右上角控制台,选择创建应用 创建应用,勾选浏览器端,白名单填写* 注:如上线更改为公网IP ...
最新文章
- 人机交互与智能的思考
- js怎么获取访问页数记录(知道的能不能告诉我一下)
- python是外部还是编程_Python网络编程(绑定到外部地址)
- ubuntu cpp与mysql连接_linux(ubuntu)下C++访问mysql数据库
- MongoDB之Java测试代码(DAO层)
- 交互式多模型_体系化教学资源上新——小学数学交互式教学工具
- 防火墙设置对外开放port
- 这个百度网盘批量转存工具真香
- acwing算法基础课
- Java筑基34-网络编程02-UDP网络编程网络编程案例
- 万字干货!《增长黑客》背后的逻辑
- 苏大计算机专业就业如何,苏州大学好就业吗?附苏州大学就业率最高的专业名单...
- 最新yar扩展安装和使用
- Elliptic Curve Cryptography: finite fields and discrete logarithms
- RGB图像转换为灰度图像的原理
- CI2451无线收发2.4Gsoc芯片集成无线收发器和 8 位 RISC(精简指令集)MCU
- 云服务器的主要性能参数,云服务器参数到配置,一文让您从小白到高手
- python学习笔记连载
- 小程序关联微信公众号如何确定用户的唯一性
- 2019年个人在嵌入式领域上的发展思路