mardi 6 mars 2012

Catégorie MKMapView

Je travaille avec des MapKit un peu ces derniers jours que j'ai fini le chapitre sur MapKit. J'ai été surpris de constater que la vue de carte n'ont pas une méthode pour vous dire si des coordonnées spécifiques sont actuellement affichées sur l'écran. Le voir la carte a une méthode pour vous dire si l'emplacement actuel de l'utilisateur est visible, mais je ne pouvais pas en trouver un à celle indiquée le cas échéant coordonnées arbitraires étaient actuellement visible à l'écran.

Cette catégorie rectifie cela.

MKMapView-CoordsDisplay.h
#import <MapKit/MapKit.h>

@interface MKMapView(CoordsDisplay)
- (BOOL)coordinatesInRegion:(CLLocationCoordinate2D)coords;
@end


MKMapView-CoordsDisplay.m
#import "MKMapView-CoordsDisplay.h"

@implementation MKMapView(CoordsDisplay)
- (BOOL)coordinatesInRegion:(CLLocationCoordinate2D)coords
{
CLLocationDegrees leftDegrees = self.region.center.longitude - (self.region.span.longitudeDelta / 2.0);
CLLocationDegrees rightDegrees = self.region.center.longitude + (self.region.span.longitudeDelta / 2.0);
CLLocationDegrees bottomDegrees = self.region.center.latitude - (self.region.span.latitudeDelta / 2.0);
CLLocationDegrees topDegrees = self.region.center.latitude + (self.region.span.latitudeDelta / 2.0);

return leftDegrees <= coords.longitude && coords.longitude <= rightDegrees && bottomDegrees <= coords.latitude && coords.latitude <= topDegrees;
}

@end



Aucun commentaire: