Я использую эту функцию, чтобы получить расстояние от одного к другому CLLocationCLLocationDistance возвращает совершенно неправильные значения
здесь venue.lat является NSNumber
GeoAddress *address = [[GeoAddress new] init];
CLLocationCoordinate2D coord;
coord.longitude = (CLLocationDegrees)[venue.lat doubleValue];
coord.latitude = (CLLocationDegrees)[venue.lng doubleValue];
address.latlng = [[CLLocation alloc] initWithLatitude:coord.latitude longitude: coord.longitude];
if (curUserLocation.coordinate.latitude){
address.distance = [address.latlng distanceFromLocation:curUserLocation];
NSLog(@" DISTANCE %f", address.distance);
NSLog(@" LOC1 %f lat %f lng", address.latlng.coordinate.latitude, address.latlng.coordinate.longitude);
NSLog(@" ME %f lat %f lng", curUserLocation.coordinate.latitude, curUserLocation.coordinate.longitude);
}
Это Geoaddress:
// GeoAddress.h
@interface GeoAddress : NSObject
{
CLLocation * latlng;
CLLocationDistance distance;
}
@property CLLocationDistance distance;
@property (nonatomic, retain) CLLocation * latlng;
// GeoAddress.m
#import "GeoAddress.h"
@implementation GeoAddress
@synthesize distance;
@synthesize latlng;
Это брокер:
DISTANCE 15106456.105786
LOC1 -73.986357 lat 40.702645 lng
ME 40.702082 lat -73.984775 lng
Цифры полностью за пределами фактического расстояния ~ 0.17 км
Что я делаю неправильно ??
В тренажере я получаю неправильное расстояние тоже, я думаю, есть позиция по умолчанию возвращается только потому, что это не настоящее устройство. –
Я думаю, что широта и долгота для LOC1 - назад. – Anna