如何将MKMapView上的距离(例如400米)转换为UIView的距离? 我想显示MKAnnotationView,它取决于MKMapView上的当前缩放级别。
答案 0 :(得分: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 :(得分:5)
MKMapView中有几个选择器可将屏幕上的UIView坐标转换为地理坐标(以及geo - >屏幕):
- (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
(=屏幕坐标),然后您就可以计算屏幕距离了。