Video: ¡NUEVO MAPA RADAR FUNCIONANDO 2018 PARA POKEMON GO ANDROID/IOS! ¡POKERADAR HACK! | POKEMON GO 2025
¿Qué sucede si desea que su aplicación iOS muestre la ubicación de su usuario en relación con su ubicación? Idealmente, cuando llegues a Nueva York (o donde sea), deberías ver un mapa que se centre en dónde te encuentras y no en todo Estados Unidos. En primer lugar, debe ver cómo centra el mapa. Para hacer eso, necesita agregar la declaración del método setInitialRegion a MapController. metro.
Primero, actualice la extensión de clase agregando el código en negrita en el Listado 17-3 a la extensión de clase en MapController. metro.
@interface MapController () @property (débil, no atómica) IBOutlet MKMapView * mapView; - (IBAction) mapType: (id) remitente; - (void) setInitialRegion; -d
Debido a que el controlador del mapa obtendrá sus datos del objeto, como debería ser, también debe actualizar la implementación para importar la clase. Agregue el código en negrita a MapController. metro.
#import "MapController. H" #import "AppDelegate. H" #import "Trip. H"
Finalmente, agregue el método setInitialRegion a MapController. metro.
- (void) setInitialRegion {AppDelegate * appDelegate = delegado [[UIApplication sharedApplication]]; Región MKCoordinateRegion; CLLocationCoordinate2D initialCoordinate = [appDelegate. viaje destinoCoordinación]; región. centrar. latitude = initialCoordinate. latitud; región. centrar. longitud = coordenada inicial. longitud; región. lapso. latitudeDelta =. 05; región. lapso. longitudeDelta =. 05; [yo. mapView setRegion: region animated: NO];}
Luego necesita actualizar viewDidLoad para usar este método. Agregue el código en negrita en el Listado 17-6 a viewDidLoad en MapController. m para enviar este mensaje.
- (void) viewDidLoad {[super viewDidLoad]; yo. vista del mapa. delegar = auto; yo. vista del mapa. showsUserLocation = SÍ; [self setInitialRegion]; }
Si ejecuta esto ahora, no verá las anotaciones … al menos no todavía.
Establecer la región es la forma de centrar el mapa y establecer el nivel de acercamiento. Usted logra todo esto con la siguiente declaración:
[self. mapView setRegion: region animated: NO];
Una región es una propiedad de vista de mapa que especifica cuatro partes de información: región
-
. centrar. latitude: especifica la latitud del centro del mapa.
-
región. centrar. Longitud: especifica la longitud del centro del mapa.
Por ejemplo, el centro del mapa sería Nueva York si tuviera que establecer esos valores como región
. centrar. latitud = 40. 712756; región. centrar. longitud = -74. 006047;
-
región. lapso. latitudeDelta: especifica la distancia de norte a sur (en grados latitudinales) para mostrar en el mapa.Un grado de latitud es de aproximadamente 111 kilómetros (69 millas). Una region. lapso. latitudeDelta de 0. 0036 especificaría una distancia de norte a sur en el mapa de aproximadamente un cuarto de milla. Las latitudes al norte del ecuador tienen valores positivos, mientras que las latitudes al sur del ecuador tienen valores negativos.
-
región. lapso. longiudeDelta: especifica la distancia de este a oeste (en grados longitudinales) para mostrar en el mapa. Desafortunadamente, el número de millas en un grado de longitud varía según la latitud. Por ejemplo, un grado de longitud es de aproximadamente 69 millas en el ecuador, pero se reduce a 0 millas en los polos.
Longitudes al este del meridiano cero (según la convención internacional, el meridiano cero o principal pasa a través del Observatorio Real, Greenwich, en el este de Londres) tienen valores positivos, y las longitudes al oeste del meridiano cero tienen valores negativos.
Aunque los valores de span proporcionan un valor de zoom implícito para el mapa, la región real que ve puede no ser igual al rango que especifique, ya que el mapa se ajustará al nivel de zoom que mejor se adapte a la región conjunto.
Esto también significa que incluso si solo cambia la coordenada central en el mapa, el nivel de zoom puede cambiar porque las distancias representadas por un tramo en particular pueden cambiar en diferentes latitudes y longitudes. Para dar cuenta de eso, los desarrolladores inteligentes de Apple incluyen una propiedad que puede establecer que cambia las coordenadas del centro sin cambiar el nivel de zoom:
@property (no atómico) CLLocationCoordinate2D centerCoordinate
Cuando cambia el valor de esta propiedad con un nuevo CLLocationCoordinate2D, el mapa se centra en la nueva coordenada, y los valores de span se actualizan para mantener el nivel de zoom actual.
Ese tipo de CLLocationCoordinate2D es algo que usará mucho. El tipo CLLocationCoordinate2D es una estructura que contiene una coordenada geográfica utilizando el marco de referencia WGS 84 (el sistema de coordenadas de referencia utilizado por el Sistema de Posicionamiento Global):
typedef struct {CLLocationDegrees latitude; CLLocationDegrees longitude;} CLLocationCoordinate2D;
Aquí hay una pequeña explicación:
-
latitud: la latitud en grados. Este es el valor que establece en el código que acaba de ingresar (región, centro, latitud = latitud;). Los valores positivos indican latitudes al norte del ecuador. Los valores negativos indican latitudes al sur del ecuador.
-
longitud: la longitud en grados. Este es el valor que estableció en el código que acaba de ingresar (región, centro, longitud, longitud, longitud). Las mediciones son relativas al meridiano cero, con valores positivos que se extienden al este del meridiano y valores negativos que se extienden al oeste del meridiano.
CLLocationDegrees representa un valor de latitud o longitud especificado en grados y es un doble.
Para centrar la visualización del mapa en Nueva York, envíe el mensaje setInitialRegion (el código que acaba de ingresar) cuando la vista se carga en el método viewDidLoad:.