MKReverseGeocoder werkt niet op GPRS discussie in Ontwikkelen voor iOS forum; ( verdwijnt na registratie ) In mijn iPhone-app maak ik gebruik van een MKReverseGeocoder om de plaatsnaam op te halen. Dit doe ik via een void die ik heb gekoppeld ...
|
Registreer | FAQ | Ledenlijst | Kalender | Berichten van vandaag | Zoeken |
#1
|
||||
|
||||
MKReverseGeocoder werkt niet op GPRS
In mijn iPhone-app maak ik gebruik van een MKReverseGeocoder om de plaatsnaam op te halen. Dit doe ik via een void die ik heb gekoppeld aan een NSTimer die elke seconde blijft herhalen.
Helaas kom ik er bij het testen achter dat de MKReverseGeocoder het niet doet via GPRS. Zou iemand mij kunnen vertellen of dit normaal is en wat ik er aan kan doen om dit op te lossen? Groet, Jelle |
|
|
Gesponsorde links (verdwijnt na registratie)
|
#2
|
|||
|
|||
Zou moeten werken, maar mischien is het wel zo dat het ophalen van de data over GPRS langer duurt dan de 1 seconde van je timer. Sowieso lijkt het me niet echt netjes om dit met een timer te doen.
Daarnaast MAG het ook niet eens van apple om dit elke seconde te doen (uit de api documentatie): Each Map Kit application has a limited amount of reverse geocoding capacity, so it is to your advantage to use reverse geocode requests sparingly. Here are some rules of thumb for using this class most effectively:
__________________
Software Engineer iPhone Developer |
#3
|
||||
|
||||
Bedankt voor de informatie.
Ik moet dus CLLocationManager gebruiken. Is er dan 1 -(void) die mij vertelt wanneer de UserLocation bekend is? Zo ja, wil iemand die mij geven? (Btw: ik heb zelf al uitgebreid gegoogled.) EDIT!: Je had gelijk, op GPRS heeft de app simpelweg meer tijd nodig om plaatsnaam te vinden. Zou Apple het wel goedkeuren als ik een timer met een interval van 5 seconden gebruik? Laatst gewijzigd door Jelle Ages; 17-06-10 om 22:55. |
#4
|
|||
|
|||
Citaat:
Bedenk eens goed waarom je in hemelsnaam iedere seconde of iedere 5 seconden de plaatsnaam wil opvragen. Reis je met een straaljager of zo? Ga voor de echte oplossing en bekijk de delegate methods van CLLocationManager eens goed. Niet Googlen dus, maar de API goed lezen. Kijk bijvoorbeeld eens naar (toch googlen) Code:
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation;
__________________
Leon [iPhone- en Java ontwikkelaar] Laatst gewijzigd door wubbe; 18-06-10 om 11:25. |
#5
|
|||
|
|||
Apple heeft ook een leuk voorbeeld projectje:
LocateMe: https://developer.apple.com/iphone/l...ion/Intro.html |
#6
|
||||
|
||||
Dank voor advies.
Ik heb nu in de documentatie het volgende gevonden: Code:
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation Ik denk dat dit komt omdat ik in de *.h file van de viewController een MKMapView aanmaak. Iemand een oplossing hoe ik dit oplos? |
#7
|
||||
|
||||
Als ik trouwens nog even terug mag komen op je eerste post in dit topic: het gaat mij er niet om dat er telkens wordt gecontroleerd of de locatie is veranderd, maar alleen om de locatie van het moment wanneer de app opstart. Ik doe dit via een timer, die gekoppeld is aan een void die een ReverseGeocoder aanzet. Wanneer deze zijn taak voltooid heeft, laat ik de timer stoppen.
Dit zal Apple toch wel goedkeuren? |
#8
|
|||
|
|||
Apple kijkt volgens mij naar andere zaken.
Ik snap echter nog steeds niet waarom je een timer nodig hebt. Een paar postings terug heb je het over een interval van 5 seconden, en nu wil je eenmalig de locatie weten. Lees eens goed in de documentatie wat een delegate is. Als je dat begrijpt zul je zien dat je geen timer nodig hebt. |
#9
|
||||
|
||||
Ik heb een timer nodig omdat de app na het opstarten moet kijken in welke plaats de gebruiker zich bevindt. Als dit na vijf seconden niet gelukt is (slechte gps- en/of internetverbinding bijvoorbeeld) moet hij het over vijf seconden nog een keer proberen, tot het wel gelukt is.
Ik weet nu wat een delegate is. Als ik me niet vergis is dit ook een delegate: Code:
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation Jelle |
#10
|
|||
|
|||
Dat betwijfel ik.
Een delegate vertelt jou als hij een plaatsbepaling heeft gedaan, in plaats van dat je het hem moet vragen. Daarom heb je helemaal geen timer nodig. Het Locate Me voorbeeld laat dat allemaal zien. Ik zou dat eens goed bekijken. |
#11
|
||||
|
||||
Ja, maar die plaatsbepaling doe ik via een MKMapView en daar zie ik niks over in LocateMe. Ik heb een timer nodig omdat het void dat de ReverseGeocoder regelt, het meerdere keren moet proberen omdat in het begin de userLocation op de mapview nog niet bekend is.
Aan een LocationManger heb ik dus niks, omdat ik afhankelijk ben van de MapView. |
#12
|
|||
|
|||
|
#13
|
||||
|
||||
Er staat achter: 'dat de ReverseGeocoder regelt'. Dit slaat op 'het void'. Ik bedoel dus met 'het void dat de ReverseGeocoder regelt' een -(void) { } waarin staat dat er een MKReverseGeocoder geactiveerd moet worden.
|
#14
|
|||
|
|||
Het is mierenneukerij maar je kan het beter gewoon "de methode" noemen
Er zijn nog wel een paar momenten dat je een verkeerde definitie gebruikt... een delegate is geen functie, zoals jij aangeeft, maar een klasse die een bepaald protocol ondersteunt en daarvoor een implementatie van een functie of methode voorziet. |
Er zijn 1 actieve gebruikers die momenteel deze discussie bekijken (0 leden en 1 gasten) |
|
Soortgelijke discussies |
||||
Discussie | Auteur | Forum | Reacties | Laatste bericht |
Telfort internet (gprs) werkt niet. | MP3-junky | KPN | 58 | 15-06-09 14:48 |
ipphone 1G + proximus => gprs werkt niet | matty | Proximus | 5 | 08-12-08 15:25 |
Telfort gprs werkt niet | Arne2606 | KPN | 2 | 27-09-08 18:37 |
EDGE/gprs werkt niet op 1.1.3!!! | Gavrosh | iPhone algemeen | 10 | 15-02-08 14:18 |
Orange GPRS/EDGE werkt niet ! | Grample | Overige providers Nederland | 20 | 13-02-08 16:32 |
|
|