在GMap.NET中隐藏或更改“本地磁贴缓存中没有数据”消息

时间:2012-08-16 10:38:57

标签: c# wpf gmap.net

我正在使用GMap.NET。在地图上放大太多而区域没有可用的图像时,会在地图上打印异常正方形。这没关系,我不想改变行为。我只是想弥补GmapControl,我差不多完成了。我现在需要的只是更改或删除异常消息:“例外:本地磁贴缓存中没有数据”。但我找不到合适的房产......

对于有兴趣的人,我已经询问了GMAP官方主题,除了这一部分外,我有一些有趣的答案:http://greatmaps.codeplex.com/discussions/389159

1 个答案:

答案 0 :(得分:0)

正如http://greatmaps.codeplex.com/discussions/389159中已经提到的,我开始执行类似的任务:

mapControl.EmptytileBrush = new SolidBrush(Color.Gainsboro);
mapControl.EmptyTileText = String.Empty;
mapControl.EmptyTileBorders = new Pen(Color.Gray);

然而,GMap没有公开隐藏异常文本的属性,并且在删除了违规的DrawString(GMAP v1.6,GMapControl.cs的第753行)后,我重新编译并发现二进制文件与源文件不同!

重新编译的源现在根本不显示异常文本(仅在使用缓存模式时)。

结果 - 在我的案例中,所有必要的都是重建或Core和WinForms。 放大时,GMAP现在尽可能使用先前的地图数据,然后默认情况下,当缩放比先前可用的水平低约10个级别时,最终会绘制一个空白的白色图块。

这种行为是可以接受的 - 毕竟,除了调试器/开发人员之外,谁想要看到明亮的异常文本而不是空白图像? :)