我已经定义了一个名为FGLocation的类,它符合MKAnnotation协议,我试图做的是测量这两个对象之间的距离。我注意到我可以使用方法distanceFromLocation:它被定义为CLLocation类的方法。正如你在下面看到的,我创建了两个临时CLLocation对象来进行计算,但我不禁想到我可能错过了一个更好/更简单的方法。有没有人对我正在做的事情有什么意见,或者我可以怎样做得更好?使用distanceFromLocation:on none CLLocation对象?
// IS THERE A BETTER WAY TO DO THIS?
FGLocation *root = [annotations objectAtIndex:counter-1];
FGLocation *leaf = [annotations objectAtIndex:counter];
CLLocation *rootLocation = [[CLLocation alloc] initWithLatitude:[root coordinate].latitude longitude:[root coordinate].longitude];
CLLocation *leafLocation = [[CLLocation alloc] initWithLatitude:[leaf coordinate].latitude longitude:[leaf coordinate].longitude];
CLLocationDistance thisDistance = [rootLocation distanceFromLocation:leafLocation];
[rootLocation release];
[leafLocation release];
NB:我FGLocation对象定义为(见下文),我的文档,我不应该继承CLLocation注意到。
@interface FGLocation : NSObject <MKAnnotation> {
嗨,这是一个公平的观点,在这个阶段有很少的几点,可能约为36个。你的权利,我不需要担心地球的曲率,因为点都是非常地方的(在大约50公里范围内),并且公平地说,我不会为了超级准确而烦恼,在100米范围内没事的。我主要担心的是,我正在围绕某种方式进行计算,并缺少一些可以直接在我的FGLocation对象上调用distanceFromLocation而不创建两个临时CLLocation对象的pro技巧。很多apprciated。 – fuzzygoat 2011-01-25 18:58:46