我在寫一個應用程序,希望用戶能夠獲取路線。我知道谷歌API,我已經實現了,但我想知道如何直接跳轉到本地地圖應用程序並改爲給用戶指示。我想我以前看過它,但我可能弄錯了。從另一個應用程序轉到iPhone地圖應用程序
任何幫助,非常感謝。
我在寫一個應用程序,希望用戶能夠獲取路線。我知道谷歌API,我已經實現了,但我想知道如何直接跳轉到本地地圖應用程序並改爲給用戶指示。我想我以前看過它,但我可能弄錯了。從另一個應用程序轉到iPhone地圖應用程序
任何幫助,非常感謝。
您可以使用常規指向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]]];
}
您可以使用此:
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地圖應用程序。我認爲這些說明僅適用於實際設備,不適用於模擬器。祝你好運,下面的評論,如果您有與任何片段問題:)
很簡單
UIApplication *app = [UIApplication sharedApplication];
[app openURL:[NSURL URLWithString:@"http://maps.google.com/maps?q=London"]];
簡單的吻
@Moshe
注意,一個設備上沒有安裝地圖(不知道這些地圖是否存在)
以iPhone模擬器爲例。
謝謝!那麼問題是:這個URL怎麼不會把我帶到地圖應用程序? 'http://maps.google.com/maps?saddr40.072318,-75.130032&daddr = 40.095203,-75.125366' – Mason
@Mason - 會發生什麼?看起來你在'saddr'後面遺漏了一個等號,btw。) – Moshe
Agh就是這樣!如此令人尷尬,對此感到遺憾。非常感謝! – Mason