GMAP.NET应用及离线地图加载

本文详细记录了使用GMap.NET进行离线地图加载的过程,包括代码配置、地图包制作及加载技巧,分享了从尝试ARCGIS到最终采用网友推荐下载器的全过程,适合GIS开发者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

废话不说,先上代码:
`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;

//gmap引用,自行添加
using GMap.NET;
using GMap.NET.WindowsForms;
using GMap.NET.MapProviders;
using GMap.NET.WindowsForms.Markers;

namespace GMAPtest
{
public partial class Form1 : Form
{
//private GMapOverlay markersOverlay = new GMapOverlay(“markers”); //放置marker的图层

    public Form1()
    {
        InitializeComponent();
    }

    private void gmap_Load(object sender, EventArgs ee)
    {
        gmap.CacheLocation = Application.StartupPath + @"\MAP\"; //重设默认缓存位置(大爷个狗贼的默认缓存问题,浪费劳资一天的青春)
        gmap.MapProvider = GMapProviders.GoogleChinaHybridMap;

        //离线模式
        gmap.Manager.Mode = AccessMode.CacheOnly;

        String mapPath = Application.StartupPath + @"\MAP\TileDBv5\en\Data.gmdb";//就是这个2G的包,让小爷搞了个通宵!!!!
        GMap.NET.GMaps.Instance.ImportFromGMDB(mapPath);

        //地图中心位置
        
        gmap.Position = new PointLatLng(39.185422, 112.252810);  //中心点的纬度,经度     

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

}
`
制作离线地图包时,注意!!!!!用Gmap.net下载地图,离线地图导出后,要自己加载的,并不是那个目录下的,C:\Users\用户名<你的计算机用户名>\AppData\Local\GMap.NET\TileDBv5\en下的,那个文件包含缓存的。搞到凌晨快四点才在Stack Overflow上找到问题所在。
在这里插入图片描述
由于精力水平有限,最终本人放弃直接使用Gmap.net下载地图,改用“阿凡卢”网友分享的下载器(该下载器也是基于Gmap.net开发的,所以下载的离线地图包在自己的软件中直接拷贝过去就可以用)
自己做的地图包太大成,上传太慢,就不分享了,直接奉上下载器网址:https://www.cnblogs.com/luxiaoxun/p/4454880.html
先后尝试了ARCGIS和Gmap.net,各种问题前前后后花了四天时间,终于完成了自己第一个地图加载模块,感动!开心!
以此博客纪念我掉的一大把头发…

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值