How to make the union between two MKCoordinateRegion

后端 未结 3 902
北恋
北恋 2020-12-10 08:04

I\'m trying to do the union between two MKCoordinateRegion. Does anybody have an idea on how to do this?

3条回答
  •  醉梦人生
    2020-12-10 08:49

    i did a little test on both 4.3 and 5.0 and it seems that the conversion is not correct

    UIImageView *imageView = [[UIImageView alloc] initWithImage:[[UIImage imageNamed:@"heart.png"] imageByScalingProportionallyToSize:CGSizeMake(100, 100)]];
    imageView.frame = CGRectMake(0, 0, 100, 100);
    imageView.center = [mapView convertCoordinate:mapView.centerCoordinate toPointToView:canvasView];
    [canvasView addSubview:imageView];
    
    MKCoordinateRegion region = [mapView convertRect:imageView.frame toRegionFromView:canvasView];
    MKMapRect maprect;
    for (int i = 0; i < 5; i ++)
    {
        maprect = [mapView mapRectForCoordinateRegion:region];
        NSLog(@"%f, %f, %f, %f", region.center.latitude, region.center.longitude, region.span.latitudeDelta, region.span.longitudeDelta);
        NSLog(@"%f, %f, %f, %f", maprect.origin.x, maprect.origin.y, maprect.size.width, maprect.size.height);
        region = MKCoordinateRegionForMapRect([mapView mapRectForCoordinateRegion:region]);
    }
    


    14.718256, -40.078125, 63.837150, 70.312500
    78118912.000000, 94811514.406252, 52428800.000000, 52428799.999997
    17.416993, -40.078125, 63.837150, 70.312500
    78118912.000000, 91803983.982924, 52428800.000000, 53344239.567355
    20.649080, -40.078125, 63.837150, 70.312500
    78118912.000000, 87976363.978412, 52428800.000000, 54699220.734715
    24.548345, -40.078125, 63.837150, 70.312500
    78118912.000000, 82962597.189840, 52428800.000000, 56765991.576236
    29.305644, -40.078125, 63.837150, 70.312500
    78118912.000000, 76093086.024249, 52428800.000000, 60073659.997575

提交回复
热议问题