计算地图上覆盖的区域

时间:2014-03-13 06:45:45

标签: ios math mkmapview

我正在处理包含地图的应用。在地图上有一个圆圈,应该像英里的覆盖区域。圆圈不会移动,但是当用户拖动它时,地图会在它后面移动。即使用户放大或缩小,我也希望能够计算地图上圆圈所覆盖的区域。我知道这都是数学的。作为我所谈论的一个例子,检查应用程序RadPad。无论如何,这是我到目前为止所做的:

  1. 计算缩放级别(用户放大/缩小时需要):

    - (NSUInteger) zoomLevel:(MKMapView*)map 
    {
        return (21 + round(log2(map.region.span.longitudeDelta * MERCATOR_RADIUS * M_PI / (180.0 * map.bounds.size.width))));
    }
    
  2. 在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];
    
  3. 使用注释以查看我是否可以在圆周上找到一个点。

    运行此代码在默认情况下运行正常,但是当我放大/缩小注释放在圆圈内或某个地方时它不应该是。

    未能在圆上找到一个点将是我甚至计算所覆盖区域的障碍。有帮助吗?暗示?

0 个答案:

没有答案