CLLocationCoordinate2D к CLLocation
у меня есть следующий цикл в моем 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 является CLLocationCoordinate2D
но как я могу использовать coord в следующем методе, потому что мне нужно это, чтобы получить расстояние между двумя coords:
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation{
}
пожалуйста, помогите мне, я застрял!
спасибо всем за помощь заранее
5 ответов
CLLocation
имеет метод init с именем -(id)initWithLatitude:(CLLocationDegrees)latitude longitude:(CLLocationDegrees)longitude
.
Тогда используйте - (CLLocationDistance)getDistanceFrom:(const CLLocation *)location
чтобы получить расстояние между двумя объектами CLLocation.
для быстрой толпы,
У меня есть метод под названием "fetchCafesArroundLocation", который обновляется после перемещения карты. Вот как я обработал получение Lat и Lon в CLLocation из CLLocationCoordiate2d, а затем передал переменную CLLocation в метод обработки.
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)
}
" Как я могу использовать свой экземпляр в качестве CLLocation?"
вы не можете, потому что он не один. Вам нужно создать.
Не забудьте выпустить то, что вы к alloc. См.правила управления памятью.
если coord является CCLocationCoordinate2D
, затем вы можете назначить newLocation из
the
**- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation**
делегировать, получив оба latitude
и longitude
свойства координат свойством!--5--> как показано ниже:
coord.latitude = newLocation.coordinate.latitude;
coord.longitude = newLocation.coordinate.longitude;