2012-10-08 26 views
2

做任何你知道如何嵌入新地圖爲導航?我們有一個應用程序,它具有以下代碼片段 - 它調用Google地圖在地圖中顯示開始和結束地址。如何嵌入iOS的地圖爲UINavigationController的

NSURL *mapURL = [NSURL URLWithString:some_url_string]; 
[webview loadRequest:[NSURLRequest requestWithURL:mapURL]]; 

UIViewController *viewController = [[UIViewController alloc] init]; 
viewController.title = @"My Map Display"; 
[viewController.view addSubview:webview]; 

[self.navigationController pushViewController:viewController animated:YES]; 

我們有我們用來構造正確url的位置座標。

上面的代碼推新的UIViewController /的WebView到navigationController當前視圖,讓應用程式的用戶使用後退按鈕返回到我們的應用程序。

我們要呼籲運行iOS 6時,用戶希望新的地圖設備新地圖API。蘋果公司表現出對新的API以下使用模式,MKMapItem:

[MKMapItem openMapsWithItems:mapItems launchOptions:options]; 

然而,處事方式有呈現在我們的應用程序的地圖 - 沒有明顯的方式爲用戶從顯示的地圖返回到我們的應用程序。我們更喜歡UINavigationController中的地圖,並且用戶能夠使用後退按鈕從地圖顯示中返回。你們中的任何人都知道我們如何將地圖嵌入到navigationController中?我們如何將調用生成的映射嵌入[MKMapItem openMapsWithItems:]?

回答

2

我覺得你與你目前的解決方案有點錯了。根據您所說的用戶永遠不會離開您的應用,他們只是在UIWebView中看到Google地圖。 openMapsWithItems:mapItems:launchOptions:實際上會打開地圖應用,因此您無法從地圖應用內提供返回到您的應用的鏈接。

隨着中說,有兩件事情需要考慮。

  1. 開放的地圖應用對用戶是非常有用的,他們得到的地圖應用提供了諸如轉由轉動方向和搜索
  2. 保持你的應用程序中的用戶來說是一個非常快速,用戶友好的所有好處在地圖上呈現位置的方式

因此,在這兩個考慮因素的情況下,我個人總是投票選擇兩者。在您的應用中提供簡單的地圖視圖,以便他們可以快速查看位置在地圖上的位置,但也可以讓他們在地圖應用內打開應用,以便在需要時可以做更多。

如果你選擇了這條路線,那麼你需要做的是查看MKMapView類,而不是將你的webview添加爲子視圖,你將添加MKMapView作爲子視圖並添加註解到MKMapView。然後,一種常見的使用模式是允許用戶觸摸註釋,以在地圖應用程序中打開帶有按鈕的「標註」。

+0

webView的在我們的實施目的是轉由轉動方向。當用戶在我們的代碼中達到這一點時,他們已經通過地圖視圖來選擇特定的業務。我們正試圖讓他們從應用程序中獲得轉彎的方向。這適用於url/google。他們可以隨時使用後退按鈕返回到我們使用其所選企業生成的地圖視圖。我們想知道是否有等效的方式來實現新地圖的使用模式。聽起來好像你說的沒有。 – Sunny

+0

正確的是,您無法訪問地圖應用以外的turn-by-turn功能,因爲它是地圖應用的功能,而不是SDK。你當然可以繼續你現在正在做的事情,但我建議讓用戶能夠輕鬆地在地圖應用中打開地址。 –

+0

它看起來像MkMapKit能夠顯示新的地圖。我不知道你是否爲Apple工作。但是,如果你這樣做,我想提出一個功能請求:我們希望能夠在地圖顯示中的兩個註釋之間顯示路線。 – Sunny

相關問題