Csharp/C#教程:GMap .net离线分享


GMap .net离线

我在c#(伟大的API,顺便说一句)中使用Gmap开发应用程序,不要与google-map API混淆,从那以后我做了一些非常酷且有用的东西。

我的问题是我的一些客户没有互联网连接,这就是为什么我需要能够离线显示背景(地图)。 我以前使用属性GMap.NET.AccessMode.ServerAndCache; 从服务器获取我的数据,现在我希望能够使用带有完整缓存的GMap.NET.AccessMode.CacheOnly

让他们加载带有连接的缓存以准备离线使用不是一种选择,PC永远不会连接到互联网。 经过一番研究,我了解到OpenStreetMap是唯一允许我免费使用地图的开源地图(这很好,因为它们有非常好的地图)。 我下载了20GB的欧洲地图,但我不知道如何将其指定为缓存(我知道如何找到缓存文件夹)。

大多数时候,我的谷歌搜索向我展示了人们试图创建一个虚拟sqlite服务器,其中包含通过localhost访问的数据库中的所有地图块,但老实说,我认为这非常复杂,我想知道是否有人有想法允许我离线使用这些地图或者这个api的文档链接,不可能在网上找到(我找到了消息来源,但几乎没有评论也没有解释)。

提前谢谢,抱歉我的英语不好。

réponsesenfrançaisbundvenues。

您可以创建一个单独的程序来预取磁贴以供离线使用。 或者使用GMap NET演示程序( https://github.com/radioman/greatmaps/tree/master/Demo.WindowsPresentation )

使用ALT +鼠标第一个按钮选择区域后,下面的代码用于按下按钮。

  RectLatLng area = mapView.SelectedArea; if (!area.IsEmpty) { for (int i = (int)mapView.Zoom; i <= mapView.MaxZoom; i++) { TilePrefetcher obj = new TilePrefetcher(); obj.Title = "Prefetching Tiles"; obj.Icon = this.Icon; obj.Owner = this; obj.ShowCompleteMessage = false; obj.Start(area, i, mapView.MapProvider, 100); } DialogResult = true; Close(); } else { MessageBox.Show("No Area Chosen", "Error", MessageBoxButton.OK, MessageBoxImage.Error); } 

(主要是从Gmap NET Demo源复制而来)

https://github.com/radioman/greatmaps/tree/master/Demo.WindowsPresentation

文件存储在C: Users [您的用户名] AppData Local GMap.NET TileDBv5 en中

一旦你成功预取了瓷砖,你可以将文件复制到离线电脑中的相同位置,它应该使用它(或者只是通过usb或其他任何方式将整个GMap.NET文件夹复制到离线电脑)

使用gmap.CacheLocation = @"C:UsersxxxDesktop"; 指定缓存位置。

只需将缓存复制到同一目录下的不同机器即可。

要缓存地图数据,请检查我的github https://github.com/williamwdu/GMap.NETChacher

缓存目录看起来像这个TileDBv5enData.gmdb

上述就是C#学习教程:GMap .net离线分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注---计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/997401.html

(0)
上一篇 2021年12月26日
下一篇 2021年12月26日

精彩推荐