我正在使用MapKit框架,我想问你一些事情:
+ (NSUInteger)zoomLevelForMapRect:(MKMapRect)mRect withMapViewSizeInPixels:(CGSize)viewSizeInPixels
{
NSUInteger zoomLevel = MAXIMUM_ZOOM; // MAXIMUM_ZOOM is 20 with MapKit
MKZoomScale zoomScale = mRect.size.width / viewSizeInPixels.width; //MKZoomScale is just a CGFloat typedef
double zoomExponent = log2(zoomScale);
zoomLevel = (NSUInteger)(MAXIMUM_ZOOM - ceil(zoomExponent));
return zoomLevel;
}
这个方法..我怎么知道mRect
和viewSizeInPixels
参数的值才能调用它?提前thx:)
答案 0 :(得分:1)
地图视图的当前MKMapRect是visibleMapRect属性,视图大小将在frame.size中(因为MKMapView是UIView的子类),因此可以使用以下内容调用该方法:
NSUInteger zoomLevel = [UtilityClass
zoomLevelForMapRect:mapView.visibleMapRect
withMapViewSizeInPixels:mapView.frame.size];
UtilityClass
是该方法所在的类,并将mapView
替换为实际命名的地图视图。
顺便说一句,MapKit Framework Reference和Location Awareness Programming Guide值得一看。