Forstå geokoding på iPad

October 1  by Eliza

Konvertere en adresse til et sett med kartkoordinater kalles fremover geokoding, under konvertering fra et sett med koordinater til en adresse kalles omvendt geokoding. Både forover og bakover geokoding støttes i Apples CLGeocoder klasse som er en del av Apples CoreLocation rammeverk.

Den CLGeocoder klasse leverer tjenester for å konvertere mellom en koordinat (spesifisert som en breddegrad og lengdegrad) og den brukervennlige representasjon av at koordinat. Brukervennlig representasjon av koordinatsystemet betyr gaten, by, stat, og landinformasjon fra et gitt sted eller et relevant punkt av interesse, landemerke, eller andre identifiserende opplysninger.

Den CLGeocoder klassen tilbyr også tjenester for det motsatte: å returnere koordinere verdi for en tekststreng som er brukervennlig representasjon av at koordinat.

For å bruke en CLGeocoder objekt, først lage det og deretter sende den en fremtids eller omvendt geokoding melding.

  • Reverse-geokoding: Disse forespørsler ta en breddegrad og lengdegrad verdi og finne en bruker-lesbar adresse.
  • Forward-geokoding: Disse forespørsler ta en bruker lesbar adresse og finne tilsvarende breddegrad og lengdegrad verdi. Forward-geokoding forespørsler kan også returnere mer informasjon om det angitte stedet, for eksempel en severdigheten bygningen på den plasseringen.

For begge typer forespørsel, er resultatene returneres som en matrise av CLPlacemark gjenstander til en ferdigstillelse handler blokk. I tilfelle av fremtids geokoding forespørsler kan flere stedsmarkeringsobjekter bli returnert dersom det gitt informasjon gir flere mulige steder.

En CLPlacemark objekt inneholder blant annet følgende egenskaper:

  • plassering: Veldig nyttig for fremover geokoding
  • navn: Navnet på stedsmarkeringen
  • addressDictionary: En ordbok som inneholder adressebok nøkler og verdier for stedsmarkeringen
  • ISOcountryCode: Den forkortet land
  • land: Navnet på landet
  • postnummer: Den postnummer
  • administrativeArea: Staten eller provins
  • subAdministrativeArea: Ytterligere administrativ informasjonsområde (for eksempel fylke)
  • lokaliteten: Byen
  • subLocality: Ytterligere informasjon city-nivå som nabolaget eller et felles navn på stedet
  • såre: Gaten
  • subThoroughfare: Ytterligere informasjon gatenivå, slik som byggenummer
  • Regionen: CLRegion

Landemerke og geografisk informasjon kan også være tilgjengelig i CLPlacemark objekt i følgende egenskaper:

  • areasOfInterest: De relevante områder av interesse knyttet til stedsmarkeringen
  • * InlandWater: Navnet på innlandet vann kroppen forbundet med stedsmarkeringen
  • ocean: Navnet på havet i forbindelse med stedsmarkeringen

Å ta smarte beslutninger om hvilke typer informasjon for å gå tilbake, bruker geocoder serveren all informasjon gitt til det ved behandling av forespørselen. For eksempel, hvis brukeren beveger seg raskt langs en motorvei, kan geocoder returnere navnet på den samlede regionen snarere enn navnet på en liten park som brukeren er på gjennomreise.

Her er noen ganske løse regler (Apples) for bruk av CLGeocoder objekt:

  • Send høyst ett geokoding forespørsel om en enkelt brukerhandling. Det vil si, ikke start en ny forespørsel til den første er fullført.
  • Hvis programmet trenger geokodet sted i mer enn ett kart plassering, lagre og deretter bruke resultatene fra den første geokoding forespørsel stedet for å gjøre en annen.
  • Når du ønsker å oppdatere brukerens nåværende plassering automatisk (for eksempel når brukeren er i bevegelse), utstede nye geokoding forespørsler bare når brukeren har flyttet en betydelig avstand, har en rimelig tid gått, eller begge deler. For eksempel, i en typisk situasjon, bør du ikke sende mer enn én geokoding forespørsel per minutt.
  • Ikke start en geokoding forespørsel hvis søknaden din er inaktiv eller i bakgrunnen.
  • En iOS-basert enhet må ha tilgang til nettverket for at CLGeocoder objekt å returnere detaljert markeringen informasjon. Selv om iOS lagrer nok informasjon lokalt for å rapportere den lokaliserte land og ISO-landkode for mange steder, hvis landinformasjon er ikke tilgjengelig for et bestemt sted, kan CLGeocoder objektet fortsatt rapportere en feil.

Du kan bruke en CLGeocoder objekt enten i forbindelse med, eller uavhengig av, klassene i MapKit rammeverket.