tutorial requestwheninuseauthorization manager framework example corelocation iphone cocoa-touch cllocationmanager

iphone - requestwheninuseauthorization - CLLocationCoordinate2D to CLLocation



location manager swift tutorial (5)

"¿Cómo puedo usar mi instancia como CLLocation?"

No puedes, porque no es uno. Necesitas crear uno .

No olvides liberar lo que asignes. Ver las reglas de gestión de memoria .

Tengo el siguiente bucle en mi viewDidLoad:

for(int i=1; i<[eventsArray count]; i++) { NSArray *componentsArray = [[eventsArray objectAtIndex:i] componentsSeparatedByString:@","]; if([componentsArray count] >=6) { Koordinate *coord = [[Koordinate alloc] init]; coord.latitude = [[componentsArray objectAtIndex:0] floatValue]; coord.longtitude = [[componentsArray objectAtIndex:1] floatValue]; coord.magnitude = [[componentsArray objectAtIndex:2] floatValue]; coord.depth = [[componentsArray objectAtIndex:3] floatValue]; coord.title = [componentsArray objectAtIndex:4]; coord.strasse = [componentsArray objectAtIndex:5]; coord.herkunft = [componentsArray objectAtIndex:6]; coord.telefon = [componentsArray objectAtIndex:7]; coord.internet = [componentsArray objectAtIndex:8]; [eventPoints addObject:coord]; }

coord is CLLocationCoordinate2D

pero ¿cómo puedo usar coord en el siguiente método, porque necesito esto para obtener la distancia entre dos coords:

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation{ }

por favor ayúdame estoy varado!

gracias a todos por ayudar de antemano


Para la multitud Swift,

Tengo un método llamado "fetchCafesArroundLocation" que se actualiza después de mover el mapa. Así es como manejé la obtención de Lat y Lon en CLLocation desde CLLocationCoordiate2d y luego pasé la variable CLLocation al método de manejo.

func mapView(mapView: MKMapView!, regionDidChangeAnimated animated: Bool){ var centre = mapView.centerCoordinate as CLLocationCoordinate2D var getLat: CLLocationDegrees = centre.latitude var getLon: CLLocationDegrees = centre.longitude var getMovedMapCenter: CLLocation = CLLocation(latitude: getLat, longitude: getLon) self.lastLocation = getMovedMapCenter self.fetchCafesAroundLocation(getMovedMapCenter) }


Sencillo

CLLocation *location = [[CLLocation alloc] initWithLatitude:lat longitude:lon];


Si coord es un CCLocationCoordinate2D , entonces puede asignar el newLocation desde el

**- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation**

delegar obteniendo las propiedades de latitude y longitude propiedad de coordenadas de la CLLocation como se muestra a continuación:

coord.latitude = newLocation.coordinate.latitude; coord.longitude = newLocation.coordinate.longitude;


CLLocation tiene un método de inicio llamado -(id)initWithLatitude:(CLLocationDegrees)latitude longitude:(CLLocationDegrees)longitude . Luego use - (CLLocationDistance)getDistanceFrom:(const CLLocation *)location para obtener la distancia entre dos objetos CLLocation.