转换MKMapView上的距离到UIView上的距离



如何在MKMapView上转换距离(例如400米)到UIView的距离?我想展示MKMapView的MKAnnotationView它依赖于MKMapView的当前缩放级别

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

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

之后使用转换区域方法获得真实的区域:

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

希望有帮助。

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

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

我假设400米是两个坐标之间的距离,所以你应该有一个参考2 CLLocationCoordinate2D结构。
只需使用- (CGPoint)convertCoordinate:(CLLocationCoordinate2D)坐标toPointToView:(UIView *)视图来获得相应的CGPoint(=屏幕坐标),然后您应该能够计算屏幕距离。

最新更新