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.