C#基于开源地图GMap的开发示例

一.介绍

本示例程序是我在做项目前的探索示例。示例中测试了一些简单的功能,满足了我项目中的基本功能。更进一步的开发,有待继续研究。

二.项目源代码地址

源代码下载地址

三.项目讲解

1.引用GMap的dll文件

利用GMap开发,需要用到两个dll文件:GMap.NET.Core.dll和GMap.NET.WindowsForms.dll。可以在vs中直接引用

在这里插入图片描述

2.引入命名控件

using GMap.NET;
using GMap.NET.WindowsForms;
using GMap.NET.MapProviders;
using GMap.NET.WindowsForms.Markers;

3.添加GMap地图控件

在工具栏中找到GMap.NET.WindowsForms.GMapControl,拖动到界面。

4.初始化地图及各图层

private void MapInit()
        {
            //初始化图层
            m_Overlay_Circle = new GMapOverlay("Circle");
            m_Overlay_Marker = new GMapOverlay("markers");
            m_Overlay_Line = new GMapOverlay("Line");
            m_Overlay_Planes = new GMapOverlay("Planes");
            //添加图层到地图上
            mapControl.Overlays.Add(m_Overlay_Circle);
            mapControl.Overlays.Add(m_Overlay_Marker);
            mapControl.Overlays.Add(m_Overlay_Line);
            mapControl.Overlays.Add(m_Overlay_Planes);
            //Bing混合地图
            mapControl.MapProvider = GMapProviders.GoogleChinaMap;

            //离线模式
            mapControl.Manager.Mode = AccessMode.CacheOnly;
            String mapPath = Application.StartupPath + "\\Data.gmdb";
            GMap.NET.GMaps.Instance.ImportFromGMDB(mapPath);

            //地图中心位置
            //gMap.SetPositionByKeywords("beijing, china"); 
            mapControl.Position = new PointLatLng(31.49, 104.6);  //中心点的纬度,经度     

            //不显示中心十字点
            //左键拖拽地图
            mapControl.DragButton = MouseButtons.Left;
            //不显示十字中心
            mapControl.ShowCenter = false;
            //最小缩放
            mapControl.MinZoom = 5;
            //最大缩放
            mapControl.MaxZoom = 12;
            //当前缩放
            mapControl.Zoom = 9;

            mapControl.MouseClick += new MouseEventHandler(mapControl_MouseClick);
        }

5.开发

接下来就可以在GMap上进行各种快乐的开发了。比如:添加飞机、添加航线、添加距离环、飞机按航线飞行等。
在这里插入图片描述

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
gmap.net是一个强大的地图控件库,用于在C#应用程序中集成地图功能。它提供了与Google地图API的交互,可以实现标记、路线规划、地理编码等功能。 要制作离线地图,我们需要先获取地图数据。目前,gmap.net不提供直接使用离线地图数据的方法,因此我们需要借助其他方式来实现离线地图功能。 一种常用的方法是使用已有的地图数据文件,如MBTiles格式。MBTiles是一种常见的矢量地图数据格式,可以在应用程序中以离线方式使用地图数据。我们可以通过使用工具将在线地图数据下载为MBTiles格式的文件。 在CSND上,有一些关于使用gmap.net制作离线地图的教程可供参考。这些教程通常会介绍如何下载地图数据文件并将其添加到应用程序中。例如,可以使用TileMill软件将在线地图数据导出为MBTiles文件,并使用gmap.net在应用程序中加载该文件。 在应用程序中加载离线地图数据后,我们可以使用gmap.net的各种功能来显示地图、添加标记、绘制路线等。离线地图数据将在应用程序中以图层的形式展示,用户可以通过滚动和缩放功能浏览地图,实现类似在线地图的功能。 需要注意的是,由于离线地图数据文件较大,应用程序的安装包也会相应增大。因此,在使用离线地图功能时,要考虑到应用程序的空间限制和用户下载和更新的成本。 总之,通过使用gmap.net和MBTiles等方法,我们可以在CSND上制作离线地图,实现离线浏览地图、标记地点和绘制路线等功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

muyiliu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值