Hjem Social Media Hvordan man viser brugerens region på et kort i din iOS-app - dummies

Hvordan man viser brugerens region på et kort i din iOS-app - dummies

Video: Bringing BACK The iPhone Headphone Jack - in China 2025

Video: Bringing BACK The iPhone Headphone Jack - in China 2025
Anonim

Hvad hvis du vil have din iOS-app til at vise brugerens placering i forhold til, hvor de er? Ideelt set, når du kommer til New York (eller hvor som helst), skal du se et kort, der fokuserer på hvor du er i modsætning til hele USA. Først skal du se på, hvordan du centrerer kortet. For at gøre dette skal du tilføje setInitialRegion method declaration til MapController. m.

Opdater først klassens udvidelse ved at tilføje den fedte kode i Liste 17-3 til klasseudvidelsen i MapController. m.

@interface MapController () @property (svag, ikkeatomisk) IBOutlet MKMapView * mapView; - (IBAction) mapType: (id) afsender; - (void) setInitialRegion; -d

Fordi kortkontrolenheden får sine data fra objektet, skal du, som det skal, opdatere implementeringen for at importere klassen også. Tilføj den modige kodet til MapController. m.

#import "MapController. H" #import "AppDelegate. H" #import "Trip. H"

Endelig skal du tilføje setInitialRegion-metoden til MapController. m.

- (void) setInitialRegion {AppDelegate * appDelegate = [[UIApplication sharedApplication] delegate]; MKCoordinateRegion region; CLLocationCoordinate2D initialCoordinate = [appDelegate. rejsedestination koordinere]; område. centrum. latitude = initialCoordinate. Breddegrad; område. centrum. længdegrad = initialCoordinate. længde; område. span. latitudeDelta =. 05; område. span. longitudeDelta =. 05; [selv. mapView setRegion: region animated: NO];}

Du skal derefter opdatere viewDidLoad for at bruge denne metode. Tilføj koden med fed skrift i Liste 17-6 for at seDidLoad i MapController. m for at sende denne besked.

- (void) viewDidLoad {[super viewDidLoad]; selv. kortSe. delegere = selv; selv. kortSe. showsUserLocation = YES; [self setInitialRegion]; }

Hvis du kører dette nu, kan du ikke se annotationerne … i det mindste ikke endnu.

Indstilling af regionen er, hvordan du centrerer kortet og indstiller zoomniveauet. Du opnår alt dette med følgende erklæring:

[selv. mapView setRegion: region animeret: NO];

En region er en kortvisningsejendom, der angiver fire stykker information:

  • region. centrum. Breddegrad: Angiver bredden af ​​midten af ​​kortet.

  • region. centrum. længdegrad: Angiver længden af ​​midten af ​​kortet.

    For eksempel ville midten af ​​kortet være New York, hvis du skulle indstille disse værdier som

    region. centrum. breddegrad = 40. 712756; område. centrum. længdegrad = -74. 006.047;
    
  • region. span. latitudeDelta: Angiver nord-syd-afstanden (i breddegrader) for at blive vist på kortet.En breddegrad er ca. 111 kilometer (69 miles). En region. span. latitudeDelta på 0. 0036 ville angive en nord-til-syd afstand på kortet på omkring en fjerdedel af en mile. Bredde nord for ækvator har positive værdier, mens breddegrader syd for ækvator har negative værdier.

  • region. span. longiudeDelta: Angiver øst-vest-afstanden (i langsgående grader) for at vise på kortet. Desværre varierer antallet af miles i en længdegrad baseret på breddegraden. For eksempel er en grad af længde ca. 69 miles ved ækvator, men krymper til 0 miles ved polerne.

    Longitudes øst for null-meridianen (ved international konvention, passerer nul- eller prime meridianen gennem det kongelige observationscenter, Greenwich, i det østlige London) positive værdier, og længder vest for nullmeridianen har negative værdier.

Selv om span-værdierne giver en implicit zoomværdi for kortet, kan den faktiske region, du ser vist, ikke svare til det spænd, du angiver, fordi kortet går til det zoomniveau, der bedst passer til det område, der er sæt.

Dette betyder også, at selvom du bare ændrer centerkoordinatet på kortet, kan zoomniveauet ændre sig, fordi afstande repræsenteret ved et bestemt spænd kan ændre sig på forskellige breddegrader og længder. For at tage højde for det, inkluderede disse smarte udviklere hos Apple en egenskab, som du kan indstille, der ændrer centerkoordinatet uden at ændre zoomniveauet:

@property (nonatomic) CLLocationCoordinate2D centerCoordinate

Når du ændrer værdien af ​​denne ejendom med en ny CLLocationCoordinate2D, er kortet centreret på den nye koordinat, og spændværdierne opdateres for at opretholde det aktuelle zoomniveau.

Denne CLLocationCoordinate2D-type er noget, du vil bruge meget. CLLocationCoordinate2D-typen er en struktur, der indeholder en geografisk koordinat ved hjælp af WGS 84-referencerammen (referencekoordinatsystemet, der anvendes af Global Positioning System):

typedef struct {CLLocationDegrees latitude; CLLocationDegrees longitude;} CLLocationCoordinate2D;

Her er en lille forklaring:

  • Breddegrad: Bredden i grader. Dette er den værdi, du angiver i den kode, du lige har indtastet (region. Center. Latitude = latitude;). Positive værdier angiver breddegrader nord for ækvator. Negative værdier angiver breddegrader syd for ækvator.

  • længdegrad: længden i grader. Dette er den værdi, du angiver i den kode, du lige har indtastet (område. Center. Længdegrad = længdegrad;). Målinger er i forhold til nulmeridianen, med positive værdier, der strækker sig øst for meridianerne og negative værdier, der strækker sig vest for meridianen.

CLLocationDegrees repræsenterer en længdegrad eller længdegrad angivet i grader og er en dobbelt.

For at centrere kortvisningen i New York, sender du indstillingen setInitialRegion (den kode du lige har indtastet), når visningen er indlæst i viewDidLoad: -metoden.

Hvordan man viser brugerens region på et kort i din iOS-app - dummies

Valg af editor

Fleksibel levering med Exchange Online fra Office 365 - dummies

Fleksibel levering med Exchange Online fra Office 365 - dummies

Ud over forudsigeligheden af ​​implementeringsomkostningerne i både tid og ressourcer, Exchange Online fra Office 365 giver mulighed for nemt at justere antallet af licenser til personer, der bruger softwaren. En ansættelsesleder kan planlægge at ansætte 45 personer, men find ud af det senere på året, at de skal ansætte ...

Skriv nye makroer i Visual Basic Editor i Excel 2013 - dummies

Skriv nye makroer i Visual Basic Editor i Excel 2013 - dummies

, Efter at du har færdighed på VBA-sproget, kan du skrive nye makroer fra bunden i Visual Basic Editor i stedet for bare at redigere dem, som du tidligere har optaget i dit regneark ved hjælp af Excels makrooptager. Når du opretter en makro fra bunden i Visual Basic Editor, skal du følge disse generelle ...

Valg af editor

Evergreen Infographics: At lave ting Build - Dummies

Evergreen Infographics: At lave ting Build - Dummies

Evergreen infographics er ikke relateret til nogen begivenhed eller person i nyhederne . De har ingen sæsonbestemt komponent, og de er ikke bundet til noget i rette tid. En infographic om, hvordan cd'er er lavet, vil gælde, fordi det er musikrelateret, men ikke specifikt for nogen kunstner eller genre. Med evergreen infographics ignorerer du fuldstændigt de aktuelle begivenheder og udforsker ideer ...

Undersøgelse af forskellige typer infografier - dummies

Undersøgelse af forskellige typer infografier - dummies

Infographics har skabt stor interesse på internettet på grund af deres evne til at underholde som oplyse. Flere typer infographics er for tiden populære. Følgende liste kan hjælpe dig med at vælge den rigtige type for de oplysninger, du forsøger at illustrere. Case study: Hvis du har foretaget en specifik forespørgsel om et bestemt emne og ...

Find mønstre i dine infografiske data - dummies

Find mønstre i dine infografiske data - dummies

Den menneskelige hjerne søger naturligt mønstre. Spotting mønstre er afgørende for at skabe overbevisende indhold for infographics fordi mønstre peger på et lag af betydning bag dataene og foreslå tilstedeværelsen af ​​et underliggende forhold eller struktur til at undersøge og afværge. Kort sagt er mønstre en anden vigtig måde, som en datalogist finder ...

Valg af editor

Brug histogrammer til sporfrekvens i Excel Dashboards - dummies

Brug histogrammer til sporfrekvens i Excel Dashboards - dummies

Et histogram er en graf, der tegner frekvensfordeling i dine Excel dashboards og rapporter. En frekvensfordeling viser, hvor ofte en begivenhed eller kategori af data opstår. Med et histogram kan du visuelt se den generelle fordeling af en bestemt attribut. Du kan oprette et formelstyret histogram, som giver mulighed for et niveau af automatisering ...

Scenario Manager til Model Lån Beregninger - Dummies

Scenario Manager til Model Lån Beregninger - Dummies

Scenarie Manager er grupperet sammen med Målsøgning og datatabeller i afsnittet What-If Analysis på fanen Data. At være grupperet med andre værktøjer, der er så nyttige, vil få dig til at tro, at Scenario Manager også er et vigtigt redskab til at vide. Men på trods af det nyttige navn og det gode selskab, det holder, ...