2014-12-26 4 views
-2

я хочу показать свою позицию на карте, я использую CLLocation для выполнения егоширота и долгота в IOS

Вот мой код:

CLLocationCoordinate2D coordinate; 
coordinate.latitude = latitude; 
coordinate.longitude = longitude; 

С latitude и longtitude является тип с плавающей точкой и получить от базы данных Но когда я конвертировать плавать значение, так что я получить неверное значение:

float latitude = [myLatString floatValue]; 

и результат: myLatString : 10.861714 значение поплавка: 10.8617144

Так что я не могу загрузить его на карту с указанными выше значениями.

Я искал в Google, кто-то сказал использовать NSDecimalNumber, но как работать NSDecimalNumber с CLLocation ??

Пожалуйста, помогите мне

+1

Что вы ожидали получить? И почему вы сохраняете числа в виде строк в своей базе данных, а не только цифры? – Abizern

ответ

0

Использование NSDecimalNumber для преобразования NSString в float.

NSString *myLatString = @"10.8617144"; 
NSDecimalNumber *decimalPoint = [[NSDecimalNumber alloc] initWithString: myLatString]; 
float latitude = decimalPoint.floatValue; 
+0

Действительно, просто голос. Для избирателя, которого вы указали, вы читаете, что здесь требуется OP. И дайте комментарий, если вы считаете, что это неправильный ответ. – Kampai

1

Использование удваивается. Широта и долгота - CLLocationDegree, которые являются двойными.

Также лучше использовать CLLocationCoordinate2DMake:

CLLocationCoordinate2D loc = CLLocationCoordinate2DMake([myLatString doubleValue], [myLngString doubleValue]);

Смежные вопросы