-Résolu- récupération de la longitude sur core location

yodarkyodark Membre
août 2008 modifié dans API UIKit #1
Bonjour,

J'ai une petite question je suis un peu nouveau dans la programmation cocoa et la réponse est surement très simple.
J'utilise CoreLocation avec un petit exemple téléchargé du site. Je voudrais savoir comment l'on récupère la donnée latitude ou longitude de l'API

// CoreLocation returns positive for North &amp; East, negative for South &amp; West<br />		[update appendFormat:LocStr(@&quot;LatLongFormat&quot;), // This format takes 4 args: 2 pairs of the form coordinate + compass direction<br />			fabs(newLocation.coordinate.latitude), signbit(newLocation.coordinate.latitude) ? LocStr(@&quot;South&quot;) : LocStr(@&quot;North&quot;),<br />			fabs(newLocation.coordinate.longitude),	signbit(newLocation.coordinate.longitude) ? LocStr(@&quot;West&quot;) : LocStr(@&quot;East&quot;)];<br />		myUrl&nbsp; = [myUrl stringWithFormat:@&quot;%d&quot;,newLocation.coordinate.latitude];<br />&nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; [update appendString:@&quot;&#092;n&quot;];<br />		[update appendFormat:LocStr(@&quot;MeterAccuracyFormat&quot;), newLocation.horizontalAccuracy];


la variable update contient bien la longitude et latitude mais de facon textuelle avec des joli petit signe et autre pour être affiché. Par contre moi je veux récuper la donnée pure de latitude sous forme décimale mais comment faire ?
j'ai utilisé
myUrl  = [myUrl stringWithFormat:@%d,newLocation.coordinate.latitude];
mais c'est pas correct... j'ai pas bien compris dans ce code ou se cachent ces données pures et comment les extraire ?

Réponses

  • fouffouf Membre
    15:16 modifié #2
    Je dirais newlocation.coordinate.latitude mais je ne garantis rien.
  • yodarkyodark Membre
    15:16 modifié #3
    C'est ca que j'ai fait non ?
    myUrl&nbsp; = [myUrl stringWithFormat:@&quot;%d&quot;,newLocation.coordinate.latitude];
    


    Je crois qu'il aime pas la conversion. Il me dit NString may not respond to stringWithFormat...
  • fouffouf Membre
    15:16 modifié #4
    Oui, non, je n'avais pas vu la faute :
    ca marche si tu fais [NSString stringWithFormat:...] ca devrait marcher ou aussi [[NSString alloc] initWithFormat:...] .
  • AntilogAntilog Membre
    15:16 modifié #5
    dans 1219658554:

    Oui, non, je n'avais pas vu la faute :
    ca marche si tu fais [NSString stringWithFormat:...] ca devrait marcher ou aussi [[NSString alloc] initWithFormat:...] .


    Explications (si besoin):
    stringWithFormat est une méthode de classe (définie avec un "+", pas un "-"), donc l'appel de la méthode doit se faire sur la classe (ici NSString), pas sur un objet (myUrl).
  • yodarkyodark Membre
    15:16 modifié #6
    Merci ca marche un peu mieux !

    En fait maintenant j'obtiens un chiffre -922765134 mais c'est pas vraiment normal théoriquement ça devrait être un nombre a virgule !
  • fouffouf Membre
    15:16 modifié #7
    C'est a cause du format que tu mets :
    %d pour un entier (int ou long)
    %f pour un flottant (double ou float)
    %c pour un charactere (char)

    Ici, je pense que newlocation.coordinate.latitude correspond à  un flottant (float ou double - je pencherais plutot pour float) donc pour l'afficher, il faut que tu utilises %f : [NSString stringWithFormat:@%f,newLocation.coordinate.latitude]
    Si tu utilises %d, il va interpréter le contenu de la variable newLocation.coordinate.latitude comme etant un entier et donc, ca donnera n'importe quoi.
  • yodarkyodark Membre
    15:16 modifié #8
    Merci beacoup ca marche !
Connectez-vous ou Inscrivez-vous pour répondre.