2011-08-14 98 views
0

我在寫一個應用程序,希望用戶能夠獲取路線。我知道谷歌API,我已經實現了,但我想知道如何直接跳轉到本地地圖應用程序並改爲給用戶指示。我想我以前看過它,但我可能弄錯了。從另一個應用程序轉到iPhone地圖應用程序

任何幫助,非常感謝。

回答

2

您可以使用常規指向Google地圖的網址打開地圖應用。從Apple URL Scheme reference

的地圖URL方案是用來展示的地理位置,併產生兩個點之間的行車路線。如果您的應用程序包含地址或位置信息,則可以使用地圖鏈接將該信息轉發到iOS上的地圖應用程序以及其他平臺上的Google地圖網站。

與某些方案不同,地圖URL不以「地圖」方案標識符開頭。相反,地圖鏈接被指定爲常規http鏈接,但針對Google地圖服務器。以下示例顯示了您將在Safari和本地應用程序中使用的字符串,以顯示加利福尼亞州庫比蒂諾市的地圖。

  • HTML鏈接:

<a href="http://maps.google.com/maps?q=cupertino">Cupertino</a>

注意,在沒有安裝的地圖(不知道那些即使存在的話)的設備上,該鏈接將在一個普通瀏覽器中打開,因爲它只是一個HTTP鏈接。

要打開URL,您可以在UIWebView中顯示鏈接,也可以使用代碼打開它。例如:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@「http://maps.google.com/maps?q=Cupertino」]];

如果你想在一個自定義位置來傳遞,並打開它,當用戶點擊一個按鈕,就可以做出這樣的方法:

- (IBAction) openMapsAppAndShowLocation:(NSString *)locationToShow{ 

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://maps.google.com/maps?q=%@", locationToShow]]]; 

} 

如果你願意,你可以重構採取緯度的方法/經度對。這可能是這樣的:

- (IBAction) openMapsAppAndShowLatitude:(double)latitude andLongitude:(double)longitude{ 

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://maps.google.com/maps?q=\"%f,%f\"", latitide, longitude]]]; 

} 
+0

謝謝!那麼問題是:這個URL怎麼不會把我帶到地圖應用程序? 'http://maps.google.com/maps?saddr40.072318,-75.130032&daddr = 40.095203,-75.125366' – Mason

+2

@Mason - 會發生什麼?看起來你在'saddr'後面遺漏了一個等號,btw。) – Moshe

+0

Agh就是這樣!如此令人尷尬,對此感到遺憾。非常感謝! – Mason

2

您可以使用此:

NSString *latlong = @"-56.568545,1.256281"; 
NSString *url = [NSString stringWithFormat: @"http://maps.google.com/maps?ll=%@", 
[latlong stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]]; 

此,

UIApplication *app = [UIApplication sharedApplication]; 
[app openURL:[NSURL URLWithString: @"http://maps.google.com/maps?q=London"]]; 

或本

[someUIApplication openURL:[[NSURL alloc] initWithString: @"http://maps.google.com/maps?q=London"]] 

你甚至可以指定縮放級別使用z標誌(1-19之間的值):

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://maps.google.com/maps?z=8"]]; 

這應該調用Google地圖應用程序。我認爲這些說明僅適用於實際設備,不適用於模擬器。祝你好運,下面的評論,如果您有與任何片段問題:)

1

很簡單

UIApplication *app = [UIApplication sharedApplication]; 
[app openURL:[NSURL URLWithString:@"http://maps.google.com/maps?q=London"]]; 

簡單的吻

1

@Moshe

注意,一個設備上沒有安裝地圖(不知道這些地圖是否存在)

以iPhone模擬器爲例。

相關問題