Como mostrar a região do usuário em um mapa em seu aplicativo ios
E se você quiser que seu aplicativo iOS para exibir a localização do seu usuário em relação a onde eles estão? Idealmente, quando você chegar a Nova York (ou onde), você deve ver um mapa que gira em torno de onde você está em oposição a todo o Estados Unidos. Primeiro, você precisa olhar para como você centrar o mapa. Para fazer isso, você precisa adicionar o setInitialRegion
Conteúdo
Video: Como assistir tv no celular android ou iphone ios
Primeiro, atualizar a extensão de classe, adicionando o código em negrito na Listagem 17-3 para a extensão classe em MapController.m.
@ interface MapController @property () (fraco, nonatomic) IBOutlet MKMapView * mapView-- (IBAction) mapType: (id)-remetente- (Void) setInitialRegion--d
Como o controlador Mapa lhe obter seus dados a partir do objeto, como deveria, você tem que atualizar a implementação de importar a classe também. Adicione o em negrito codificado para MapController.m.
Video: iOS 10 - Maps App
#importar "MapController.h"#importar "AppDelegate.h"#importar "Trip.h"
Finalmente, adicione a setInitialRegion método para MapController.m.
- (Void) {setInitialRegion AppDelegate * appDelegate = [[UIApplication sharedApplication] delegado] -MKCoordinateRegion região-CLLocationCoordinate2D initialCoordinate = [appDelegate.trip destinationCoordinate] -region.center.latitude = initialCoordinate.latitude-region.center.longitude = initialCoordinate.longitude- region.span.latitudeDelta = 0,05-region.span.longitudeDelta = .05- [self.mapView setRegion: região animada: NÃO] -}
Você, então, precisa atualizar viewDidLoad para usar este método. Adicione o código em negrito na Listagem 17-6 para viewDidLoad dentro MapController.m para enviar esta mensagem.
- (Void) viewDidLoad {[super viewDidLoad] -self.mapView.delegate = auto-self.mapView.showsUserLocation = do Sim[Auto setInitialRegion] -}
Se você executar este agora, você não vê as anotações ... pelo menos não ainda.
Video: Google Maps for iPhone Tips and Tricks
Definir o região é como você centrar o mapa e definir o nível de zoom. Você realizar tudo isso com a seguinte declaração:
[Self.mapView setRegion: região animada: NO] -
A região é uma propriedade vista Mapa que especifica quatro peças de informação:
region.center.latitudeEspecifica a latitude do centro do mapa.
region.center.longitudeEspecifica a longitude do centro do mapa.
Por exemplo, o centro do mapa seria New York, se você fosse para definir esses valores como
region.center.latitude = 40.712756-region.center.longitude = -74.006047-
region.span.latitudeDeltaEspecifica a distância norte-sul (em graus de latitude) para exibir no mapa. Um grau de latitude é de aproximadamente 111 quilômetros (69 milhas). UMA region.span.latitudeDelta de 0,0036 deve especificar uma distância norte-sul no mapa de cerca de um quarto de milha. Latitudes ao norte do equador tem valores positivos, enquanto latitudes ao sul do equador têm valores negativos.
region.span.longiudeDeltaEspecifica a distância leste-oeste (em graus longitudinais) para exibir no mapa. Infelizmente, o número de milhas em um grau de longitude varia de acordo com a latitude. Por exemplo, um grau de longitude é de aproximadamente 69 milhas no equador, mas diminui para 0 milhas nos pólos.
Video: How to use Apple Maps on iPhone 6 Plus - 3D Tours, Traffic, GPS
Longitudes leste do meridiano zero (por convenção internacional, o meridiano zero ou primo passa através do Observatório Real de Greenwich, no leste de Londres) têm valores positivos, e longitudes a oeste do meridiano de zero têm valores negativos.
Embora os valores de amplitude fornecer um valor de zoom implícita para o mapa, a região real que você vê exibido pode não corresponder ao período especificado porque o mapa irá para o nível de zoom que melhor se adapta a região que está definido.
Isto também significa que, mesmo se você apenas muda o centro de coordenadas no mapa, o nível de zoom pode mudar porque as distâncias representadas por um período particular pode mudar em diferentes latitudes e longitudes. Para dar conta disso, os desenvolvedores inteligentes a Apple incluiu uma propriedade que você pode definir que muda a coordenada do centro sem alterar o nível de zoom:
@property (nonatomic) CLLocationCoordinate2D centerCoordinate
Quando você altera o valor da propriedade com um novo CLLocationCoordinate2D, o mapa é centrado na nova coordenada, e os valores de extensão são atualizados para manter o nível de zoom atual.
que CLLocationCoordinate2D tipo é algo que você vai usar muito. o CLLocationCoordinate2D tipo é uma estrutura que contém um geográfica (sistema de coordenadas de referência utilizados pelo Sistema de Posicionamento Global) de coordenadas utilizando a trama de refercia da WGS 84:
typedef struct {CLLocationDegrees Latitude-CLLocationDegrees longitude-} CLLocationCoordinate2D-
Aqui está uma pequena explicação:
latitude: A latitude em graus. Este é o valor definido no código que você acabou de entrar (region.center.latitude = latitude-). Os valores positivos indicam latitudes ao norte do equador. Valores negativos indicam latitudes ao sul do equador.
longitude: A longitude em graus. Este é o valor definido no código que você acabou de entrar (region.center.longitude = longitude-). As medições são em relação ao meridiano zero, com valores positivos que se estendem a leste do meridiano e valores negativos que se estendem a oeste do meridiano.
CLLocationDegrees representa um valor de latitude ou longitude especificadas em graus e é um Duplo.
Para centralizar a visualização do mapa em Nova York, você envia o setInitialRegion mensagem (o código que você acabou de entrar) quando a vista é carregado na viewDidLoad: método.