В настоящее время я работаю с MKMapView, и я пытаюсь заставить данные появляться на экране. Для этого я решил выбрать небольшой MapDataProvider, который выплескивает массив объектов MKAnnotation, каждый из которых содержит координату со случайными значениями широты и долготы.Координаты широты и долготы MKMapView
Я уже убедился, что мой MKMapView подключен к моему контроллеру, и массив объектов MKAnnotation исходит из моего MapDataProvider правильно ... но по какой-то причине .. когда я пытаюсь указать координаты в Северной Америке (например, 48, -84) .. ничего не отображается в MKMapView.
После игры я узнал, что любое значение долготы меньше 0 дает мне эту проблему.
Я попытался проверить значение координаты для каждого объекта MKAnnotation в моей коллекции, но CLLocation2DIsValue() продолжает возвращать false.
Вопрос:
Какой диапазон значений можно ввести для широты и долготы для CLLocationCoordinate2D, так что мои контакты показывают в Северной Америке?
Чтобы дать немного больше контекста, вот метод будучи вызван в MapDataProvider:
+ (NSArray *) getMockMapData {
NSMutableArray *tempMapData = [[NSMutableArray alloc] initWithCapacity:15];
for (int i=0; i< 15; i++) {
double latitude = rand()%20 +50;
double longitude = -107 + rand()%10;
CLLocationCoordinate2D coord = CLLocationCoordinate2DMake(latitude, longitude);
if(CLLocationCoordinate2DIsValid(coord) == NO)
continue;
[tempMapData addObject:[MockMapData
dataForValues:[@"Item " stringByAppendingString:[[NSNumber numberWithInt:i] description]]
subTitle:[@"Item " stringByAppendingString:[[NSNumber numberWithInt:i]description]]
coordinate:coord]];
}
return tempMapData;
}
Широта может быть от -90 до 90, а долгота может быть от -180 до 180, поэтому действует 48, -84. Можете ли вы опубликовать код, который добавляет аннотации? – Anna
Спасибо за ваш ответ. Поиграв с ним еще немного, я отключил arcrandom для rand, и это изменило мою проблему. – dpalmajr
Обновлен источник с последним исправлением. – dpalmajr