可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
i have the following loop in my viewDidLoad:
for(int i=1; i=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
but how can i use coord in the following method, because i need this to get distance between two coords:
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation{ }
please help me i am stranded!
thank you all for helping beforehand
回答1:
CLLocation
has an init method named -(id)initWithLatitude:(CLLocationDegrees)latitude longitude:(CLLocationDegrees)longitude
. Then use - (CLLocationDistance)getDistanceFrom:(const CLLocation *)location
to get the distance between two CLLocation objects.
回答2:
Simple
CLLocation *location = [[CLLocation alloc] initWithLatitude:lat longitude:lon];
回答3:
For the Swift crowd,
I have a method called "fetchCafesArroundLocation" which is refreshed after the map gets moved around. This is how I handled getting the Lat and Lon into CLLocation from CLLocationCoordiate2d and then passed the CLLocation variable to the handling method.
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) }
回答4:
“how can i use my instance as CLLocation?”
You can't, because it isn't one. You need to create one.
Don't forget to release what you alloc. See the memory management rules.
回答5:
If coord is a CCLocationCoordinate2D
, then you can assign the newLocation from the
**- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation**
delegate by getting both of the latitude
and longitude
properties of coordinate property of the CLLocation
as below:
coord.latitude = newLocation.coordinate.latitude; coord.longitude = newLocation.coordinate.longitude;