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

declaração de método para MapController.m.

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.


    Publicações relacionadas