Buduję aplikację opartą na geolokalizacji i chcę wiedzieć, jaki typ danych jest najlepszy do przechowywania lat/długo Używam podwójnej wartości, ale myślę, że możemy być bardziej precyzyjni, jak 10 miejsc dziesiętnych.Jaki jest najlepszy i najbardziej dokładny typ danych do przechowywania szerokości geograficznej w Xcode?
5
A
Odpowiedz
12
double
to wartość używana przez sam system iOS. iOS używa CLLocationDegrees
do reprezentowania wartości długich/długich, które są typedef z podwójne.
IMO, używając double
/CLLocationDegrees
byłby najlepszym wyborem.
2
Nie, nie będzie, ponieważ lat/długi iOS
użyje również podwójne.
/*
* CLLocationDegrees
*
* Discussion:
* Type used to represent a latitude or longitude coordinate in degrees under the WGS 84 reference
* frame. The degree can be positive (North and East) or negative (South and West).
*/
typedef double CLLocationDegrees;
3
Jest już odpowiedź, że w iOS SDK :)
Weź look at CLLocationCoordinate2D - jest używany do przechowywania przez CoreLocation to lat/LNGS wykorzystujące typ CLLocationDegrees. Jeśli jest to dokładność, jaką daje CoreLocation, to jest tak dokładne, jak to się dostanie!
5
Patrząc na definicję CLLocationCoordinate2D:
typedef struct {
CLLocationDegrees latitude;
CLLocationDegrees longitude;
}
CLLocationCoordinate2D;
a następnie lokalizacji CLLocationDegrees;
typedef double CLLocationDegrees;
Widzimy, że precyzja jest podana jako podwójna. Tak więc nie można tego uczynić lepszym.
Dlaczego nie używać 'CLLocationDegrees'? – deanWombourne
'CLLocationDegrees' jest po prostu typedef dla double. Ale widząc ostatni komentarz z 'Dean' byłoby lepiej użyć CLLocationDegrees – rckoenes
@deanWombourne, ;-) Oczywiście. Wspomniałem już, że CLLocationDegrees jest typedef double. – EmptyStack