我的 .Net GMap 离线时有问题,从 13 到 18 下载 4 个缩放级别的所有图块需要太多时间和空间。所以我想也许我可以用 1' 分割(切片)国家地图000x1'000 行,如果放置了标记,则在每个图块中显示 1'000'000 块(图块),并仅下载这些级别中的该图块。但主要问题是我不知道如何虚拟地分割(切片)国家地图或类似的东西。也许有人有一些想法或已经做过类似的事情?
问问题
487 次
1 回答
0
由于标记是从 GMapMarker 类派生的,因此您可以遍历标记集合对象中的所有标记。
每个标记都有一个 Position 属性。由于您现在知道了标记的纬度和经度,因此您可以使用 FromLatLngToPixel 和 FromPixelToTileXY 函数导出图块的 X 和 Y 值。在下面的 C# 示例中,您将能够从tile对象中获取 X 和 Y tile 值。
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事件处理程序。
于 2015-12-11T11:01:49.157 回答