iCulture forum | iPhone, iPad,  iPod touch, Apple TV en iOS

iCulture forum | iPhone, iPad, iPod touch, Apple TV en iOS (https://forum.iculture.nl/)
-   Ontwikkelen voor iOS (https://forum.iculture.nl/f133/development/f58/ontwikkelen-voor-ios/)
-   -   Applicatie met Coördinaten (https://forum.iculture.nl/f133/development/f58/ontwikkelen-voor-ios/35938-applicatie-cooerdinaten.html)

Tim14ww 18-06-09 18:32

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

nkooiker 18-06-09 19:20

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. :)

Tim14ww 18-06-09 19:23

Citaat:

Oorspronkelijk geplaatst door nkooiker (Bericht 300721)
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. :)

Hoe doe ik dit in de praktijk?

Mvg,

Tim

nkooiker 18-06-09 19:28

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! :)

Tim14ww 18-06-09 19:29

Citaat:

Oorspronkelijk geplaatst door nkooiker (Bericht 300735)
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! :)

Bedankt, Maar hoe doe ik dit in de praktijk bedoel ik mee; hoe laat ik hem zo werken dat als hij op een bepaalde plek komt hij automatisch plus 1 doet?

Groetjes

nkooiker 19-06-09 10:10

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 :)

Whacko 19-06-09 10:21

Citaat:

Oorspronkelijk geplaatst door nkooiker (Bericht 301372)
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 :)

Hoe wil je dat doen met een timer? De CoreLocation API is event-driven. Je krijgt automatisch een event binnen als de gps positie verandert. Dus als je dat event binnenkrijgt is het een kwestie van controleren of die positie in de buurt is van jouw attractie, en dan je teller ophogen.

nkooiker 19-06-09 10:23

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. :)

gekkepietje 19-06-09 11:43

Citaat:

Oorspronkelijk geplaatst door Tim14ww (Bericht 300738)
Bedankt, Maar hoe doe ik dit in de praktijk bedoel ik mee; hoe laat ik hem zo werken dat als hij op een bepaalde plek komt hij automatisch plus 1 doet?

Groetjes

Je definieert een bepaalde cirkel rond die plek. Als de coordinaten die je van Core Location krijgt binnen die cirkel vallen, dan verhoog je je tellertje. Vervolgens zet je een vlaggetje. Als je nu weer coordinaten van Core Location krijgt die binnen die cirkel vallen, negeer je ze omdat het vlaggetje is gezet. Ga je buiten de cirkel dan wis je het vlaggetje weer (of bijvoorbeeld na een bepaalde tijd).

Whacko 19-06-09 12:00

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.

danielpunt 22-06-09 12:26

alleen is CoreLocation niet altijd precies op de meter.

gekkepietje 22-06-09 13:06

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.

Whacko 22-06-09 13:34

Citaat:

Oorspronkelijk geplaatst door danielpunt (Bericht 306284)
alleen is CoreLocation niet altijd precies op de meter.

Klopt, maar als jij de hele tijd dat ding in je zak hebt in een pretpark, dan denk ik dat de fix wel redelijk goed is uiteindelijk.


Alle tijden zijn GMT +2. Het is nu 21:17.