如何在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
(=屏幕坐标),然后您应该能够计算屏幕距离。