2011-12-07 37 views

回答

9

首先,创建一个区域400米定尺:

MKCoordinateRegion myRegion = MKCoordinateRegionMakeWithDistance(mapView.centerCoordinate, 400, 0); 

使用后转换区域方法得到真正的矩形:

CGRect myRect = [mapView convertRegion: myRegion toRectToView: nil]; 
NSLog(@"width for 400m is %f", myRect.size.width); 

希望,这会有所帮助。

+1

如果您将距离设置为'MKCoordinateRegionMakeWithDistance'的'latitudinalMeters'属性,就像在您的示例中一样,您应该确实读取高度而不是生成的CGRect的宽度。请参阅http://developer.apple.com/library/ios/#documentation/MapKit/Reference/MapKitFunctionsReference/Reference/reference.html#//apple_ref/c/func/MKCoordinateRegionMakeWithDistance –

5

您有几种选择在MKMapView转换的UIView屏幕地理坐标上的坐标(和地理 - >屏幕以及):

- (CGPoint)convertCoordinate:(CLLocationCoordinate2D)coordinate toPointToView:(UIView *)view 
- (CLLocationCoordinate2D)convertPoint:(CGPoint)point toCoordinateFromView:(UIView *)view 

我认为400米,2个坐标之间的距离,所以要您有2 CLLocationCoordinate2D结构的参考。
只需使用- (CGPoint)convertCoordinate:(CLLocationCoordinate2D)coordinate toPointToView:(UIView *)view即可获得相应的CGPoint(=屏幕坐标),然后您就可以计算屏幕距离。