2

新しいマップをナビゲーションに埋め込む方法を知っている人はいますか?次のコードを含むアプリがあります。これは、Googleマップを呼び出して、地図に開始アドレスと終了アドレスを表示します。

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にプッシュして、アプリのユーザーが戻るボタンを使用してアプリに戻ることができるようにします。

ユーザーが新しいマップを必要とするときに、iOS6を実行しているデバイスで新しいマップAPIを呼び出します。Appleは、新しいAPIMKMapItemの次の使用パターンを示しました。

[MKMapItem openMapsWithItems:mapItems launchOptions:options];

ただし、この方法で行うと、マップがアプリ上にレンダリングされます。ユーザーが表示されたマップからアプリに戻るための明確な方法はありません。UINavigationController内のマップを使用し、ユーザーが戻るボタンを使用してマップ表示から戻ることができるようにすることをお勧めします。ナビゲーションコントローラー内にマップを埋め込む方法を知っている人はいますか?[MKMapItem openMapsWithItems:]の呼び出しによって生成されたマップを埋め込むにはどうすればよいですか?

4

1 に答える 1

2

私はあなたがあなたの現在の解決策と少し間違っていると思います。あなたが言ったことに基づいて、ユーザーは決してあなたのアプリを離れることはなく、彼らは単にUIWebViewでGoogleマップを見ているだけです。実際にマップアプリを開くため、openMapsWithItems:mapItems:launchOptions:マップアプリ内からアプリに戻るリンクを提供することはできません。

そうは言っても、考慮すべきことがいくつかあります。

  1. マップアプリで開くことはユーザーにとって非常に便利です。マップアプリが提供するすべてのメリットを利用できます。
  2. アプリ内にユーザーを維持することは、地図ビューに場所を表示するための非常に迅速でユーザーフレンドリーな方法です

ですから、両方を考慮して、私は常に両方を行うことに投票します。アプリ内にシンプルなマップビューを提供して、場所がマップ上のどこにあるかをすばやく確認できるようにします。また、必要に応じてさらに多くのことができるように、マップアプリ内でアプリを開くオプションも提供します。

このルートを選択した場合は、Webビューをサブビューとして追加する代わりにMKMapViewクラスを調べる必要があります。代わりに、MKMapViewをサブビューとして追加し、注釈をMKMapViewに追加します。一般的な使用パターンの1つは、ユーザーが注釈に触れて、マップアプリで開くボタンのある「コールアウト」を表示できるようにすることです。

于 2012-10-08T23:59:45.257 に答える