gmap 获取瓦片数

在 gmap1.7版本中 gMapControl1.MapProvider.Projection.GetAreaTileCount(area, i, 0); 可用来获取到erea里i层的瓦片数量.

但是在1.9版本中 取消了GetAreaTileCount,只有GetAreaTileList()这个方法了,,返回的是个链表,,,再获取链表里元素的个数,,一样可以获取到瓦片数,但如果数据量很大时速度会很慢...找到1.7版本中GetAreaTileCount的源码,这样我们可以在自己代码里写,,相对来说要快的多..

public long GetAreaTileCount(RectLatLng rect, int zoom, GMapProvider provider,int padding)
        {
            long count = 0;
            GPoint topLeft = provider.Projection.FromPixelToTileXY(provider.Projection.FromLatLngToPixel(rect.LocationTopLeft, zoom));
            GPoint rightBottom = provider.Projection.FromPixelToTileXY(provider.Projection.FromLatLngToPixel(rect.LocationRightBottom, zoom));

            long xMax = rightBottom.X + padding;
            long xMin = topLeft.X - padding;
            long yMax = rightBottom.Y + padding;
            long yMin = topLeft.Y - padding;

            count = (xMax - xMin + 1) * (yMax - yMin + 1);
            return count;
        }

  

posted @ 2019-02-26 19:12  霸气帆爷  阅读(512)  评论(0编辑  收藏  举报