Met het oog op het inrichten van een query naar een externe server wil ik de grenzen van de huidige kaartweergave te krijgen in een iPhone app die ik ben het opbouwen. UIView moet reageren grenzen maar het lijkt MKMapView niet. Na het instellen van een regio en inzoomen op de kaart probeer ik de grenzen te krijgen. Ik zit vast op de eerste stap, die is om te proberen de CGPoints dat de SE en NW hoeken van de kaart vertegenwoordigen krijgen. Daarna ging ik te gebruiken:
- (CLLocationCoordinate2D)convertPoint:(CGPoint)point toCoordinateFromView:(UIView *)view
Om de punten te zetten in kaart coördinaten. Maar ik kan niet eens zo ver ...
//Recenter and zoom map in on search location
MKCoordinateRegion region = {{0.0f, 0.0f}, {0.0f, 0.0f}};
region.center = mySearchLocation.searchLocation.coordinate;
region.span.longitudeDelta = 0.01f;
region.span.latitudeDelta = 0.01f;
[self.mapView setRegion:region animated:YES];
//After the new search location has been added to the map, and the map zoomed, we need to update the search bounds
//First we need to calculate the corners of the map
CGPoint se = CGPointMake(self.mapView.bounds.origin.x, mapView.bounds.origin.y);
CGPoint nw = CGPointMake((self.mapView.bounds.origin.x + mapView.bounds.size.width), (mapView.bounds.origin.y + mapView.bounds.size.height));
NSLog(@points are: se %@, nw %@, se, nw);
De code compileert zonder waarschuwingen evenwel se en nw beide nul. Kijkend naar self.mapView.bounds.origin.x de variabele is 0. Trying to NSLog direct self.mapView.bounds.size.width geeft me een Programma ontvangen signaal:‘EXC_BAD_ACCESS’. die lijkt uit NSLog te komen.
Iedereen weet de juiste manier om de zuid-oost hoek en noordwestelijke hoek te krijgen (in kaart coördinaten) van het zichtbare gedeelte van een MKMapView?
EDIT: Het lijkt erop dat wanneer je iets hier gevraagd het antwoord komt u direct na. Ik was met behulp% @ in plaats van @f aan elke variabele in NSLog welke fouten er gooide af te drukken. Ik ontdekte ook de annotationVisibleRect eigendom van MKMapView. Het lijkt wel dat de annotationVisibleRect is gebaseerd op de bovenliggende view coördinaten.














