2010-01-25 3 views
3

Je veux donner l'option à l'utilisateur de mettre le nom de l'emplacement qu'il veut rechercher dans google map de l'iphone. lorsque l'utilisateur met le nom de l'emplacement de cette carte particulière devrait venir. Pour l'instant je fais cela en fixant la valeur de la coordiante dans son objet latitude et longitude.comment convertir la valeur nsstring du texte en CLLocationCoordinate2D en objectif-c pour google map

CLLocationCoordinate2D location=mapView.userLocation.coordinate; 

location.latitude=19.14; 
location.longitude=73.10; 

est-il possible de donner la valeur de cette coordonnée dans le texte et convertir en la valeur de CLLocationCoordinate2D?

Répondre

3

Je ne suis pas tout à fait clair sur votre question, mais si vous êtes désireux de convertir un NSString en CLLocationCoordinate2D vous pouvez utiliser les éléments suivants:

{ 
    [self useLocationString:@"19.14,73.10"]; 
} 

- (void) useLocationString:(NSString*)loc 
{ 
    // the location object that we want to initialize based on the string 
    CLLocationCoordinate2D location; 

    // split the string by comma 
    NSArray * locationArray = [loc componentsSeparatedByString: @","];   

    // set our latitude and longitude based on the two chunks in the string 
    location.latitude = [[[NSNumber alloc] initWithDouble:[[locationArray objectAtIndex:0] doubleValue]] autorelease]; 
    location.longitude = [[[NSNumber alloc] initWithDouble:[[locationArray objectAtIndex:1] doubleValue]] autorelease]; 

    // do something with the location 
} 

Ce code ne vérifie pas la validité de la chaîne, que vous pourriez faire être vérifier le NSArray vous revenez de componentsSeparatedByString.

+0

Un décalage de langues là je pense; devrait être '[self useLocationString: @" 19.14,73.10 "]' – dreamlax

+0

@dreamlax Merci;) Il est ridicule comment je fais souvent cela. – RedBlueThing

+0

Vous avez aussi mis == au lieu de = dans votre dernière ligne;) –

0

Voici une approche plus moderne.

- (CLLocationCoordinate2D) get2DCoordFromString:(NSString*)coordString 
{ 
    CLLocationCoordinate2D location; 
    NSArray *coordArray = [coordString componentsSeparatedByString: @","]; 
    location.latitude = ((NSNumber *)coordArray[0]).doubleValue; 
    location.longitude = ((NSNumber *)coordArray[1]).doubleValue; 

    return location; 
} 
Questions connexes