Как контакты iphone находят адрес на карте Google? - PullRequest
0 голосов
/ 12 августа 2011

Я пытался показать адрес на карте Google в своем приложении для iphone. Я пытался использовать

NSString * theAddressString =......;
NSString * query = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@",theAddressString];
NSString * urlString = [query stringByAddingPercetntEscapesUsingEncoding:NSUTF8StringEncoding];
[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString];

Карта Google не может найти некоторые адреса, которые мы предоставили. (Некоторые адреса на японском или китайском) Но если я сохранил адрес в контактах iPhone. А потом нажал адресная ссылка контакта. Он перейдет на карты Google, хотя карта Google сначала предупредила, что «не может найти адрес», после того, как я подтвердил сообщение с предупреждением, другой вид отобразит местоположение на карте Google или покажет адрес в соседнем.

Так что приложение iPhone «Контакт» может использовать другие apis для фильтрации адресной строки, чтобы найти адрес, или с помощью некоторого короля «нечеткого поиска».

Кто-нибудь знает, как они этого добиваются?

Я очень ценю вашу помощь.

1 Ответ

0 голосов
/ 12 августа 2011

Попробуйте следующее и сообщите мне о состоянии решения.

    NSString * theAddressString =......; 
    NSString *latlong = [[myLatitude stringByAppendingString:@","]stringByAppendingString:myLongitude];
    NSString * query = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@@%@",[theAddressString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding], [latlong stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 
    //NSString * urlString = [query stringByAddingPercetntEscapesUsingEncoding:NSUTF8StringEncoding]; 
    [UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString];

Новый код с указанием адреса:

    NSString *theAddressString = @"東村山市野口町1-3-49 アマドムス 102, 東京都, 日本";
    NSString *urlString=[NSString stringWithFormat:@"http://maps.google.com/maps/geo?q=%@&output=csv",[theAddressString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];   
    NSString *locationString = [NSString stringWithContentsOfURL:[NSURL URLWithString:urlString]];  
    NSArray *listItems = [locationString componentsSeparatedByString:@","]; 
    float latitude=0.0; 
    float longitude=0.0;    
    if([listItems count] >=4  && [ [listItems objectAtIndex:0] isEqualToString:@"200"]){        
        latitude = [[listItems objectAtIndex:2] doubleValue];       
        longitude = [[listItems objectAtIndex:3] doubleValue];      
    }   
    else{       
        NSLog(@"Error");        
    }   
    NSString *myLatitude = [NSString stringWithFormat:@"%f",latitude];
    NSString *myLongitude = [NSString stringWithFormat:@"%f",longitude];
    NSString *latlong = [[myLatitude stringByAppendingString:@","]stringByAppendingString:myLongitude];
    NSString * query = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@@%@",[theAddressString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding], [latlong stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:query]];

Я проверил строка запроса с картой Google, и она показывает мне пин-код на карте Google.

...