2011-08-12 38 views
0

我試圖在我的iPhone應用程序中顯示谷歌地圖中的地址。 我試圖用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]; 

谷歌地圖找不到我們提供了一些地址。(一些日本或中國的地址),但如果我保存的地址到iPhone的聯繫人。然後按 聯繫人的地址鏈接。它會跳轉到谷歌地圖,雖然谷歌地圖第一次警告「無法找到地址」,在我確認了警報消息後,另一個視圖會顯示谷歌地圖中的位置或顯示附近的地址。

因此,iPhone的「聯繫」應用程序可能會使用其他apis來過濾地址字符串以查找地址或使用某些「模糊搜索」王。

有誰知道他們如何實現它?

我真的很感謝你的幫助。

回答

0

嘗試以下方法,並讓我瞭解解決方案的狀態。

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]]; 

我已經檢查了查詢字符串谷歌地圖,它顯示我谷歌地圖的引腳。

+0

Google地圖無法顯示地址。 我檢查谷歌地圖中的字符串,它與當我按下iPhone的聯繫人中的地址時相同。 – binzhang

+0

請再次檢查給定的代碼,因爲您必須通過地址傳遞經緯度。 –

+0

謝謝,但我必須處理輸入地址字符串,它不提供經度和緯度。 – binzhang