• API
• FAQ
• Tools
• Archive
daily pastebin goal
52%
SHARE
TWEET

# Untitled

a guest Feb 20th, 2019 63 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
1. CLLocationCoordinate2D myNorthEast, mySouthWest;
2.
4.     myNorthEast = CLLocationCoordinate2DMake(lat1,lon1);
5.     mySouthWest = CLLocationCoordinate2DMake(lat2,lon2);
7. }
8.
9. -(void)mapView:(MKMapView *)mapView regionWillChangeAnimated:(BOOL)animated{
10.     /*
11.     / Check if the map region is going to change outside your fence.
12.     / If so, programmatically set it back to the edge of your fence.
13.     */
14.
15.     if(!animated){
16.         return; // Don't want to get stuck in a loop after you set your region below.
17.     }
18.
19.     MKCoordinateRegion region = [mapView region];
20.
21.     // You will need to get the NE and SW points of the new region to compare
22.     // First we need to calculate the corners of the map so we get the points
23.     CGPoint nePoint = CGPointMake(mapView.bounds.origin.x + mapView.bounds.size.width, mapView.bounds.origin.y);
24.     CGPoint swPoint = CGPointMake(mapView.bounds.origin.x, bounds.origin.y + mapView.bounds.size.height);
25.
26.     // Then transform those point into lat,lng values
27.     CLLocationCoordinate2D neCoord;
28.     neCoord = [mapView convertPoint:nePoint toCoordinateFromView:mapView];
29.
30.     CLLocationCoordinate2D swCoord;
31.     swCoord = [mapView convertPoint:swPoint toCoordinateFromView:mapView];
32.
33.     /*
34.         You will need to mess around with the lat/lon & sign of the new center calculation for the other cases.
35.     */
36.     if(neCoord.latitude > myNorthEast.latitude){
37.         MKCoordinateRegion newRegion;
38.         newRegion.span = region.span;
39.         CLLocationCoordinate2D newCenter;
40.         newCenter.longitude = region.center.longitude;
41.         newCenter.latitude = myNorthEast.latitude - region.span.latitudeDelta;
42.         newRegion.center = newCenter;
43.         [mapView setRegion:newRegion animated:NO];
44.     }else if(neCoord.longitude < myNorthEast.longitude){
45.
46.     }else if(swCoord.latitude < mySouthWest.latitude){
47.
48.     }else if(swCoord.longitude > mySouthWest.longitude){
49.
50.     }
51. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy.

Top