今日、私はクライアントと話しました。彼はAndroidで簡単なナビゲーションアプリを構築したいと考えています。
基本的に、Googleマップを使用して、いくつかの場所(レストラン、ホテルなど)を示すために「私たちの」マーカーを配置できます。また、近くにユーザーの友人を表示する必要があります。
AndroidのGoogle Maps APIでは、そのすべてが可能です。ただし、自分のアプリ内でのターンバイターンナビゲーションの実装に関する有用な情報は見つかりません(Google Mapsアプリに切り替えずに)。
誰かが簡単に明確にすることができます-Androidアプリ内でGoogleマップを使用して、ターンバイターンGPSベースのアプリを作成できますか?
ありがとう
編集:この回答を使用する前に Tusharによる回答 を読んでください
最初のオプション
アプリにナビゲーションを完全に実装する場合は、Google Maps APIとGoogle Directions APIの組み合わせを使用する必要があります。上限まで無料で使用でき、APIリクエストの料金を支払う必要があります。( https://developers.google.com/maps/documentation/directions/ )
2番目のオプション
デバイスマップアプリに移動する場所の緯度と経度を送信するだけです。この方法で開始するコードを次に示します。
double lat = < latitude of the location you want to navigate to>
double lng = < longitude of the location you want to navigate to>
String format = "geo:0,0?q=" + lat + "," + lng + "( Location title)";
Uri uri = Uri.parse(format);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
これにより、デバイスのマップアプリが開き、場所がプロットされます。ユーザーはアプリを使用して、必要な操作を実行できます。
私は2番目のオプションを使用しますが、これはばかげて簡単に実装できます。
上記の答えに同意しますが、Google Maps APIプライバシー規約のセクション10.4.cにも重要な条項があります here 。
それは述べています
ナビゲーションなし。お客様は、(a)リアルタイムのナビゲーションまたはルートガイダンスのために、またはそれに関連して、サービスまたはコンテンツを使用しません。または(b)自動または自律車両制御。
したがって、続行して質問に答えて「いいえ、プライバシーポリシーに違反せずにGoogle Maps APIを使用してAndroidにターンバイターンのナビゲーションアプリケーションを作成することはできません。
たくさん検索した後、音声案内と矢印画像を使用したターンバイターン方式のナビゲーションの2つのオプションを見つけました。
こちらのマップは多少費用がかかり、無料での使用は許可されていません(試用期間は90日間のみ)。しかし、次のような多くの利点があります。
明確で完璧なドキュメント:彼らが提供するドキュメントは明確で理解しやすく、提供するデモアプリには必要なものがすべて実装されています。そのため、多くのものをコピーして貼り付けることができます。
開発者に優しい:開発者向けのマップの完全な制御(制限なし、マップで考えられることなら何でもできます)。
Coverage:ナビゲーションは、特定の特定の国だけでなく、ほとんどすべての国にとって明確で良いだけではありません。たとえばインドでチェックしました。 Apple Mapsはインドのルートを提供していませんが、Google Mapsはそれを提供していますが、私の観点からすると、こちらのマップはGoogleよりもはるかに明確で優れています。
skobblerは優れており、上限まで無料で使用できますが、すべての国に適しているわけではありません(インドのレベルはカバーしていません)。また、こちらのマップほど開発者にとって使いやすいものではありません。
私は自分でターンバイターンの解決策を探してこのスレッドに出くわし、さらに詳しく検索して、この有望なjavascriptプロジェクトを見つけました。
FFWDme.js -は、モバイルブラウザにインタラクティブなGPS運転指示をもたらすことを目的としたJavaScriptツールキットです
オープンソースです。構成可能ですが、デフォルトでは、slippy mapにはleaflet.jsを使用し、構成可能なTile-serverを使用するため、Open-streetマップから実行できます。また、方向サービスにはオープンソース Graphhopper を使用しますが、独自のサービスを追加することもできます。
有望に見えます!
Google Maps APIを使用したターンバイターンナビゲーションの作成は、ToSを更新した2018年7月の価格変更の後でも、Google Maps API ToSでは許可されていません。
Google Mapsの新しいToSセクション3.2.4 (エンファシス鉱山):
(c)Google製品または機能の再作成はありません。 お客様は、本サービスを使用して、他のGoogle製品またはサービスの機能に実質的に類似または再作成する機能を備えた製品またはサービスを作成しません。顧客の製品またはサービスには、Googleの製品またはサービスを超える実質的で独立した価値と機能が含まれている必要があります。たとえば、お客様は以下を行いません:(i)Google Maps Coreサービスを再配布するか、あたかもそれらがお客様のサービスであるかのように見せかけます。 (ii)Google Maps Core Services、Google Maps、Google Mapsモバイルアプリ、またはそれらの機能の代替物を作成する。 (iii)リスティングまたはディレクトリサービスでGoogleマップコアサービスを使用するか、広告製品を作成または拡張する。 (iv)AndroidのDirections API、Geolocation API、Maps SDKのデータを組み合わせて、Googleマップが提供する機能とほぼ同様のリアルタイムナビゲーション機能を作成しますAndroidモバイルアプリの場合
まだ可能ではありませんが、Googleにはいくつかのプライベートパートナーシップがあります
LyftはGoogleマップナビゲーションアプリ内を導入しました https://thehub.lyft.com/blog/lyft-navigation-google-maps