在 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;
}