簡體   English   中英

從iOS Mapkit到Google Maps?

[英]From iOS Mapkit to Google Maps?

我用Mapkit實現了一個簡單的應用程序,該程序顯示了某個地址的一個引腳。 如果單擊此圖釘,則可以看到該位置的詳細信息和公開指示。 在這一點上,我想使用戶能夠獲得從他的位置到那里的路線。

我唯一的想法是推送一個Web視圖,以在Google Maps中打開具有所需坐標的網址。 有許多有效且可用的方法來做到這一點嗎? 還有其他想法嗎?

在此先感謝,yassa

您必須決定是要嵌入UIWebView還是讓用戶轉到地圖應用。 如果您讓用戶退出您的應用程序,則可能會失去“用戶連接”,但是在地圖應用程序中的用戶體驗遠勝於網絡體驗。 因此,我使用了地圖應用程序。

有關如何通過UIApplication openURL啟動地圖應用程序,請參見http://wiki.akosma.com/IPhone_URL_Schemes#Maps

請注意,如果未安裝maps應用(只是模擬器?),則會打開網頁,但會在Safari中而不是在嵌入式UIWebView打開。

實際上,在iOS7中,您可以使用MapKit在您的應用內提供指導。 是我的消息來源。 我引用:

MKDirectionRequest和MKDirectionResponse許多移動用戶依賴於其設備上的指示,並且在iOS 7中,開發人員現在可以在您的應用程序上下文中提供這些指示,而不必切換到Maps應用程序。 您從源和目的地開始您的請求。 其他選項包括替代路線,運輸類型和出發/到達時間。

MKDirectionsRequest *request = [[MKDirectionsRequest alloc] init]; 
> request.source = source;  request.destination = destination; 
> request.requestsAlternateRoutes = YES;    MKDirections *directions =
> [[MKDirections alloc] initWithRequest:request];  [directions
> calculateDirectionsWithCompletionHandler: ^(MKDirectionsResponse
> *response, NSError *error) {      if (error) {        NSLog(@"Error is %@",error);    } else {        [self showDirections:response];     }  }];

MKDirectionsResponse提供了許多信息,其中包括MKRoute數組,每個MKRoute包含MKRouteStep數組,因此您可以提供指示步驟,以使用戶到達其位置。 通過將MKRoute和MKRouteSteps放置在數組中,可以輕松地在表中顯示信息或在地圖上顯示信息,如下所示:

for (MKRoute *route in _response.routes) {      [_mapView
> addOverlay:route.polyline level: MKOverlayLevelAboveRoads];  }

用戶隨設備移動時,結果可能會經常更新,因此不要長時間緩存結果。

借助Google Maps API中的類似功能,Google限制了您的應用每天可以收到的請求數量。 蘋果選擇了不同的方向和速率限制每個設備,這意味着沒有針對每個應用程序或針對每個開發人員的使用限制。 如果設備的使用率很高,則可能會受到限制,這是為了限制應用程序執行遞歸發出請求之類的操作。

很抱歉,如果答案的格式很奇怪,我發現所有引號和代碼格式都很難。 希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM