.Net GMap切片映射成小块

时间:2015-12-01 13:57:08

标签: c# gmap.net

离线时我的.Net GMap有问题,需要花费太多的时间和空间从13到18下载4个缩放级别的所有图块。所以我想出也许我可以分割(切片)国家地图使用1' 000x1' 000行,如果有放置标记并且仅下载那些级别中的那个图块,则在每个图块中给出1&#39,000&#39,000个(图块)外观。但主要的问题是,我不知道如何虚拟地分割(切片)国家地图或类似的东西。也许某人有一些想法或已经做过类似的事情?

1 个答案:

答案 0 :(得分:0)

由于标记来自GMapMarker类,因此您可以遍历标记集合对象中的所有标记。

每个标记都有一个Position属性。由于您现在知道标记的纬度和经度,因此可以使用FromLatLngToPixel和FromPixelToTileXY函数导出图块的X和Y值。在下面的C#示例中,您将能够从 tile 对象中获取X和Y平铺值。

var px   = MainMap.MapProvider.Projection.FromLatLngToPixel(marker.Position.Lat, marker.Position.Lng, (int)gmap.Zoom);
var tile = MainMap.MapProvider.Projection.FromPixelToTileXY(px);

然后从服务器获取磁贴,查看TilePrefetcher类如何处理X,Y值以获取磁贴。查看TilePrefetcher类中的 worker_DoWork 事件处理程序。