我正在处理包含地图的应用。在地图上有一个圆圈,应该像英里的覆盖区域。圆圈不会移动,但是当用户拖动它时,地图会在它后面移动。即使用户放大或缩小,我也希望能够计算地图上圆圈所覆盖的区域。我知道这都是数学的。作为我所谈论的一个例子,检查应用程序RadPad。无论如何,这是我到目前为止所做的:
计算缩放级别(用户放大/缩小时需要):
- (NSUInteger) zoomLevel:(MKMapView*)map
{
return (21 + round(log2(map.region.span.longitudeDelta * MERCATOR_RADIUS * M_PI / (180.0 * map.bounds.size.width))));
}
在mapView:regionDidChangeAnimated中我输入了以下内容:
// Place a single pin
MKPointAnnotation *annotation2 = [[MKPointAnnotation alloc] init];
[annotation2 setCoordinate:CLLocationCoordinate2DMake(mapView.region.center.latitude, mapView.region.center.longitude-(0.0255*([self zoomLevel:mapView]/12)))];
[_map addAnnotation:annotation2];
使用注释以查看我是否可以在圆周上找到一个点。
运行此代码在默认情况下运行正常,但是当我放大/缩小注释放在圆圈内或某个地方时它不应该是。
未能在圆上找到一个点将是我甚至计算所覆盖区域的障碍。有帮助吗?暗示?