Applicatie met Coördinaten
Hallo, Daar ben ik weer.
Ik heb dus eindelijk mijn eerste applicatie in de store, en nu ben ik dus verder gaan denken om het uit te bouwen. (om uit te leggen, de applicatie houd bij hoevaak je in een attractie in de efteling bent geweest). Nu wil ik het PROBEREN zo te maken, dat als je op een bepaald punt komt, de app er automatisch een bijtelt. Is dit mogelijk? Zoja, hoe? en hoe zit het dan, moet je bijvoorbeeld je app open houden etc? Ik hoop dat jullie me kunnen helpen. Alvast bedankt, Groetjes Tim |
Dat kan in theorie, je kunt aan Core Location gewoon je huidige coordinaten opvragen. Wel moet daarvoor de app actief/open zijn ja.
In de praktijk is het misschien wat lastig met de precisie van de locatiebepaling. :) |
Citaat:
Mvg, Tim |
Als je een developer account hebt kun je altijd hier kijken voor dat soort vragen.
In jouw geval een relevant voorbeeld: Sign in with your Apple ID - Apple Developer Connection "Shows how to use the CLLocationManager class to determine the user's current location. It demonstrates starting and stopping updates, error handling, and changing location parameters." Succes! :) |
Citaat:
Groetjes |
Persoonlijk zou ik ervoor kiezen om dmv een NSTimer elke x seconden de locatie op te vragen en te vergelijken met die van attracties die je in een XML of SQLLite db hebt opgeslagen :)
|
Citaat:
|
Ah kijk, heb geen ervaring met Core Location. Mijn eerste ingeving zou dus zijn om dmv een NSTimer te 'pollen'. Events afvangen andersom is even better idd. :)
|
Citaat:
|
dit kan redelijk makkelijk met de CoreLocation API.
Je houdt de coordinaten bij van je attractie. Deze stop je in een CLLocation object, en gebruikt dan de distanceFrom: methode om de afstand te bepalen tussen de attractie en je huidige locatie. als die distance 5meter is (voorbeeldje) dan ben je dus binnen een straal van 5 meter van die attractie. Je kan dan je teller ophogen. Wat nog mooier is, is dat je de uitgang van de attractie ook gebruikt. als je dus eerst door de ingang bent gelopen en daarna door de uitgang, dan heb je dus de rit gedaan, en hoog je je teller op. Zo voorkom je dat je teller wordt opgehoogd als je alleen maar langs de attractie loopt. |
alleen is CoreLocation niet altijd precies op de meter.
|
Misschien is het handiger om het als volgt te doen: je bepaalt de afstand tussen jouw punt P en de coordinaten uit het CoreLocation object. Als dat minder is dan horizontalAccuracy, dan ben je dichtbij genoeg.
|
Citaat:
|
Alle tijden zijn GMT +2. Het is nu 21:17. |