#iphone #objective-c #xcode #mapkit
#iPhone #objective-c #xcode #mapkit
Вопрос:
У меня есть приложение для iPhone с несколькими представлениями, каждое представление представляло часть мира. Когда мой пользователь нажимает кнопку, чтобы перейти к этому представлению, я хочу показать карту с предустановленным местоположением … т. Е. когда я нажимаю, чтобы перейти в Нью-Йорк, отображается карта Нью-Йорка
Возможно ли это сделать? Укажите координаты широты и долготы? или каким-либо другим методом?
На данный момент у меня есть следующий код, который определяет текущее местоположение моих пользователей и отображает его карту, и я могу выбирать между гибридным, обычным или спутниковым с помощью сегментированного элемента управления.
-(IBAction)getLocation {
creteMapView.showsUserLocation = YES;
}
-(IBAction)setMap:(id)sender {
switch (((UISegmentedControl *)sender).selectedSegmentIndex)
{
case 0:
{
creteMapView.mapType = MKMapTypeStandard;
break;
}
case 1:
{
creteMapView.mapType = MKMapTypeSatellite;
break;
}
case 2:
{
creteMapView.mapType = MKMapTypeHybrid;
break;
}
}
}
Все это работает отлично, но вместо текущего местоположения я хочу просто установить уже определенное. Есть идеи?
Спасибо
Ответ №1:
добавьте класс, который реализует протокол MKAnnotation, например: http://trac.ilesansfil.org/browser/branches/ilesansfil_iphone_app/STABLE_1.3/Models/LocationAnnotation.h
импортируйте файл заголовка и попробуйте
CLLocationCoordinate2D coordinate1;
coordinate1.longitude = 3.35;
coordinate1.latitude = 44.85;
LocationAnnotation *loc1 = [[LocationAnnotation alloc] initWithCoordinate:coordinate1];
[creteMapView addAnnotation:loc1];
это добавит PIN-код к вашей карте
Вы также можете удалить местоположение пользователя, если хотите, с помощью :
creteMapView.showsUserLocation = NO;
Комментарии:
1. Привет, кто-нибудь, спасибо за ответ. Я получаю список ошибок с этим — использование необъявленных идентификаторов для LocationAnnotation и loc1
2. извините, я забыл добавить класс LocationAnnotation, я отредактировал сообщение, Вы можете увидеть ссылки на реализацию этого класса
Ответ №2:
Используйте setRegion в вашем MKMapView. Для этого нужен MKCoordinateRegion, который вы создаете с помощью MKCoordinateRegionMake с центральной координатой (широта, длина) и размахом (охватываемая область). Вы можете получить широту и долготу из API, такого как Google Maps, но для этого потребуется полное руководство.
Комментарии:
1. вы также можете установить центр, что сохранит масштаб без изменений, просто переместите прямоугольник.
2. верно, тогда вам не нужно заботиться о части ‘span’