j'ai la boucle suivante dans mon 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 est CLLocationCoordinate2D
mais comment puis-je utiliser coord dans la méthode suivante, parce que j'en ai besoin pour obtenir une distance entre deux coordonnées:
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation{
}
aidez-moi s'il vous plaît je suis coincé!
merci à tous d'avoir aidé à l'avance
CLLocation
a une méthode init nommée -(id)initWithLatitude:(CLLocationDegrees)latitude longitude:(CLLocationDegrees)longitude
. Utilisez ensuite - (CLLocationDistance)getDistanceFrom:(const CLLocation *)location
pour obtenir la distance entre deux objets CLLocation.
Simple
CLLocation *location = [[CLLocation alloc] initWithLatitude:lat longitude:lon];
Pour la foule rapide,
J'ai une méthode appelée "fetchCafesArroundLocation" qui est actualisée après le déplacement de la carte. C’est ainsi que j’ai traité l’obtention de Lat et Lon dans CLLocation à partir de CLLocationCoordiate2d, puis que je passais la variable CLLocation à la méthode de traitement.
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)
}
"Comment puis-je utiliser mon instance en tant que CLLocation?"
Vous ne pouvez pas, parce que ce n'en est pas un. Vous devez en créer un .
N'oubliez pas de libérer ce que vous allouez. Voir les règles de gestion de la mémoire .
Si coord est un CCLocationCoordinate2D
, vous pouvez alors affecter le newLocation de Au
**- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation**
déléguez en obtenant les propriétés latitude
et longitude
de la propriété de coordonnée de la CLLocation
comme ci-dessous:
coord.latitude = newLocation.coordinate.latitude;
coord.longitude = newLocation.coordinate.longitude;