将MKMapView上的距离转换为UIView的距离

Oks*_*ana 2 iphone xcode objective-c mapkit mkmapview

如何将MKMapView上的距离(例如400米)转换为UIView的距离?我想显示MKAnnotationView,它取决于MKMapView上的当前缩放级别.

Den*_*nis 9

首先,创建一个长度为400米的区域:

MKCoordinateRegion myRegion = MKCoordinateRegionMakeWithDistance(mapView.centerCoordinate, 400, 0);
Run Code Online (Sandbox Code Playgroud)

之后使用转换区域方法获取真正的rect:

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

希望这可以帮助.


yon*_*nel 5

MKMapView中有几个选择器可将屏幕上的UIView坐标转换为地理坐标(以及地理 - >屏幕):

- (CGPoint)convertCoordinate:(CLLocationCoordinate2D)coordinate toPointToView:(UIView *)view
- (CLLocationCoordinate2D)convertPoint:(CGPoint)point toCoordinateFromView:(UIView *)view
Run Code Online (Sandbox Code Playgroud)

我假设400米是2个坐标之间的距离,所以你应该参考2个__CODE__结构.
只需使用__CODE__获取相应的__CODE__(=屏幕坐标),然后您就可以计算屏幕距离.