(57)【特許請求の範囲】
【請求項１】
方向ルーティング指示を生成するためのモバイルコンピューティングデバイスであって、当該モバイルコンピューティングデバイスは：
１つ以上のプロセッサと；
前記１つ以上のプロセッサに結合され、複数の命令を有するメモリと；
を具備し、前記複数の命令は、実行されると、当該モバイルコンピューティングデバイスに、
開始位置と行き先位置との間の１つ以上のルートを定義する複数のルートセグメントの各ルートセグメントについて道路コスト値を決定させ、
前記複数のルートセグメントの各ルートセグメントに関連付けられるネットワーク状態情報を決定させることであって、該ネットワーク状態情報が、対応するルートセグメントに関連付けられるネットワークタイプを備え、
前記ネットワーク状態情報を格納させ、
前記対応するルートセグメントに関連付けられる前記ネットワーク状態情報及び前記ネットワークタイプに応じて、各ルートセグメントの前記道路コスト値を調整させ、
前記開始位置から前記行き先位置までのルートを、該ルートの各ルートセグメントに関連付けられる前記調整された道路コスト値に応じて決定させる、
モバイルコンピューティングデバイス。
【請求項２】
前記ネットワーク状態情報は、前記ルートセグメントに関連付けられるネットワーク信号強度を更に備える、
請求項１に記載のモバイルコンピューティングデバイス。
【請求項３】
前記ネットワーク状態情報を決定することは：
当該モバイルコンピューティングデバイスの現在の位置を決定すること；
当該モバイルコンピューティングデバイスの前記現在の位置に関連付けられるネットワーク状態情報を決定すること；及び
前記ネットワーク状態情報を、前記複数のルートセグメントのうち前記現在の位置に関連付けられるルートセグメントに関連付けること；
を備える、請求項１に記載のモバイルコンピューティングデバイス。
【請求項４】
前記ネットワーク状態情報を決定することは、前記ルートセグメントに関連付けられるネットワーク状態情報をクラウドソーシングサーバから受け取ることを備える、
請求項１乃至３のいずれか一項に記載のモバイルコンピューティングデバイス。
【請求項５】
前記調整された道路コスト値に応じて、前記ルートを決定することは、前記調整された道路コスト値に基づいてダイクストラ最短経路グラフ検索法を実行することを備える、
請求項１乃至３のいずれかに記載のモバイルコンピューティングデバイス。
【請求項６】
前記ルートを決定することは：
ネットワーク状態を考慮することなく、前記開始位置から前記行き先位置までの暫定ルートを決定することであって、前記暫定ルートが前記ルートセグメントを含むこと；及び
前記ルートセグメントに関連付けられる前記ネットワーク状態情報に基づいて前記暫定ルートを変えること；
を備える、請求項１乃至３のいずれか一項に記載のモバイルコンピューティングデバイス。
【請求項７】
方向ルーティング指示を生成するための方法であって、当該方法は：
モバイルコンピューティングデバイスによって、開始位置と行き先位置との間の１つ以上のルートを定義する複数のルートセグメントの各ルートセグメントについて道路コスト値を決定するステップと；
前記モバイルコンピューティングデバイスによって、前記複数のルートセグメントの各ルートセグメントに関連付けられるネットワーク状態情報を決定するステップであって、該ネットワーク状態情報が、対応するルートセグメントに関連付けられるネットワークタイプを備えるステップと；
前記モバイルコンピューティングデバイスによって、前記ネットワーク状態情報を格納するステップと；
前記モバイルコンピューティングデバイスによって、前記対応するルートセグメントに関連付けられる前記ネットワーク状態情報及び前記ネットワークタイプに応じて、各ルートセグメントの前記道路コスト値を調整するステップと；
前記モバイルコンピューティングデバイスによって、前記開始位置から前記行き先位置までのルートを、該ルートの各ルートセグメントに関連付けられる前記調整された道路コスト値に応じて決定するステップと；
を備える、方法。
【請求項８】
前記ネットワーク状態情報を決定するステップは：
前記モバイルコンピューティングデバイスの現在の位置を決定すること；
前記モバイルコンピューティングデバイスの前記現在の位置に関連付けられるネットワーク状態情報を決定すること；及び
前記ネットワーク状態情報を、前記複数のルートセグメントのうち前記現在の位置に関連付けられるルートセグメントに関連付けること；
を備える、請求項７に記載の方法。
【請求項９】
前記ネットワーク状態情報を決定するステップは、クラウドソーシングサーバから前記ルートセグメントに関連付けられるネットワーク状態情報を受け取るステップを備える、
請求項７に記載の方法。
【請求項１０】
実行されたことに応答してコンピューティングデバイスに請求項７乃至９のいずれか一項に記載の方法を実行させる、複数の命令を備えるコンピュータプログラム。
【請求項１１】
請求項７乃至９のいずれか一項に記載の方法を実行するための手段を備えるコンピューティングデバイス。
【請求項１２】
請求項１０に記載のコンピュータプログラムを記憶するコンピュータ読取可能記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
スマートフォンやタブレット、車載インフォテインメントデバイスのようなモバイルコンピューティングデバイスは、典型的に、ナビゲーション、駆動方向又は経路探索のためのアプリケーションを含む。これらのアプリケーションは、全地球測位システム（GPS）又は他の技術を使用して、デバイスの位置を決定することができる。駆動方向又は他のルートは、モバイルデバイスによって、あるいはモバイルデバイスと通信するサーバデバイスによって決定され得る。方向は、典型的に、２つの地点間の最短距離又は最短移動時間（travel  time）を有するルートのために生成される。
【０００２】
そのようなモバイルデバイスは、しばしば、ナビゲーションアプリケーションに加えて、他のアプリケーションを提示する。例えば多くのモバイルデバイスは、オーディオ又はビデオのストリーミングを含むエンターテイメントアプリケーション、並びにドキュメント又は他のコンピュータファイルへのリモートアクセスを含む生産性アプリケーションを提供する。したがって、ユーザは典型的に、これらのモバイルデバイスについて信頼性のある素早いネットワークデータ接続を望む。典型的なモバイルデバイスは、信号の強さを示す簡単な「棒」グラフの形で現在のネットワーク状態（network  condition）をユーザに表示する。
【０００３】
地理情報システム（GIS）は、地理的位置によって索引付けされる及び／又は検索可能な多くのタイプのデータを記憶し得る。例えばGISは、様々な自治体、位置及び／又は他の地理的位置についての犯罪データを記憶することができる。典型的なGISは、モバイルコンピューティングデバイスのような多数のクライアントデバイスによりアクセスされ得る、自治体又は他のエンティティによって管理されるGISサーバを含む。典型的に、GISデータは、例えばウェブインタフェースを通して、手動の検索及び／又はブラウジングに利用可能である。
【図面の簡単な説明】
【０００４】
本明細書で説明される概念は、添付の図面において限定ではなく例として図示される。説明の簡潔性及び明瞭性のために、図面に示される要素は、必ずしもスケーリングして描かれていない。適切であると考えられる場合、対応する要素又は類似の要素を示すように、図面の中で参照番号が繰り返し使用されている。
【図１】移動している間にユーザに情報を提供するためのシステムの少なくとも１つの実施形態の簡略化されたブロック図である。
【図２】図１のシステムによって確立され得る様々な環境の少なくとも１つの実施形態の簡略化されたブロック図である。
【図３】図１及び図２のモバイルコンピューティングデバイスによって実行され得る、ネットワーク状態情報を収集するための方法の少なくとも１つの実施形態の簡略化されたフロー図である。
【図４】図１及び図２のシステムのモバイルコンピューティングデバイス及び／又はクラウドソーシングサーバによって実行され得る、ネットワーク状態情報に基づいてルートを決定するための方法の少なくとも１つの実施形態の簡略化されたフロー図である。
【図５】図４の方法においてルートを決定するための使用され得るグラフ構造を示す図である。
【図６】図１のシステムによって確立され得る環境の少なくとも１つの実施形態の簡略化されたフロー図である。
【図７】図１及び図６のモバイルコンピューティングデバイスによって実行され得る、安全でない位置をユーザに通知するための方法の少なくとも１つの実施形態の簡略化されたフロー図である。
【発明を実施するための形態】
【０００５】
本開示の概念は、様々な修正及び代替的な形態を許容するが、その特定の実施形態を例として図面に図示しており、本明細書で詳細に説明することにする。しかしながら、本開示の概念を、開示される特定の形態に限定する意図はなく、反対に、本開示及び添付の特許請求の範囲と整合性のある全ての修正、均等物及び代替物を網羅するよう意図されることを理解されたい。
【０００６】
本明細書における「一実施形態」、「実施形態」、「例示の実施形態」等への言及は、説明される実施形態が、特定の特徴、構造又は特性を含むことがあるが、全ての実施形態がその特定の特徴、構造又は特性を含んでいてもよく、また必ずしも含んでいなくてもよいことを示す。さらに、そのようなフレーズは必ずしも同じ実施形態を指していない。さらに、特定の特徴、構造又は特性が、ある実施形態との関連で説明されるとき、他の実施形態との関連でそのような特徴、構造又は特性が達成されることは、明示的に説明されるか否かに関わらず、当業者の知識の範囲内で提起される。加えて、「Ａ、Ｂ及びＣのうちの少なくとも１つ」という形でリスト内に含まれる項目は、（Ａ）；（Ｂ）；（Ｃ）；（Ａ及びＢ）；（Ａ及びＣ）；（Ｂ及びＣ）又は（Ａ、Ｂ及びＣ）を意味する可能性がある。同様に、「Ａ、Ｂ又はＣのうちの少なくとも１つ」という形でリストされる項目は、（Ａ）；（Ｂ）；（Ｃ）；（Ａ及びＢ）；（Ａ及びＣ）；（Ｂ及びＣ）又は（Ａ、Ｂ及びＣ）を意味する可能性がある。
【０００７】
開示される実施形態は、一部の場合には、ハードウェア、ファームウェア、ソフトウェア又はその任意の組合せで実装され得る。開示される実施形態は、１つ以上の一時的又は非一時的なマシン読取可能（例えばコンピュータ読取可能）記憶媒体によって担持又は格納される命令として実装されてよく、そのような命令は、１つ以上のプロセッサによって読み取られて実行され得る。マシン読取可能記憶媒体は、任意のストレージデバイス、機構、あるいはマシンにより読取可能な形式で情報を記憶又は伝送する他の物理的機構として具現化され得る（例えば揮発性又は不揮発性メモリ、メディアディスク又は他のメディアデバイス）。
【０００８】
図面では、幾つかの構造的又は方法的特徴が、特定の配置及び／又は順序で図示され得る。しかしながら、そのような特定の配置及び／又は順序は必ずしも必要とされない可能性があることを認識されたい。むしろ、一部の実施形態では、そのような特徴は、例示の図面に示されるものと異なる手法及び／又は順序で配置され得る。さらに、特定の図面において構造的又は方法的特徴が含まれることは、そのような特徴が全ての実施形態で必要とされることを示唆するようには意図されておらず、一部の実施形態では含まれなくてもよく、あるいは他の特徴と組み合わされてもよい。
【０００９】
ここで、図１を参照すると、例示の実施形態において、移動中（旅行中（traveling））のユーザに情報を提供するためのシステム１００は、１つ以上のモバイルコンピューティングデバイス１０２、クラウドソーシング（crowdsourcing）サーバ１０４及び地理情報システム（GIS）サーバ１０６を含み、これらは全てネットワーク１１６を介して相互に通信することができる。使用に際して、以下でより詳細に議論されるように、各モバイルコンピューティングデバイス１０２は、複数の地理的位置に関連付けられるネットワーク状態データ１０８を決定することができる。各モバイルコンピューティングデバイス１０２及び／又はクラウドソーシングサーバ１０４は、地図（map）データ１１０と組み合わせてネットワーク状態データ１０８を使用して、２つの地理的位置間のルートをネットワーク状態データ１０８に応じて決定することができる。したがって、システム１００は、最適な又は他の改善されたネットワーク接続を有するルートに沿って、位置間の方向を提供することができる。ルートに沿った改善されたネットワーク接続は、モバイルコンピューティングデバイス１０２のユーザのために、データ利用を向上させ、あるいは他の方法で旅行経験を改善させることができる。
【００１０】
あるいはまた、使用に際して、以下でより詳細に議論されるように、モバイルコンピューティングデバイス１０２は、当該モバイルコンピューティングデバイス１０２の現在のコンテキストを決定し、その現在のコンテキストに関連付けされる安全性レベルを決定することができる。安全性レベルは、GISサーバ１０６から受け取られる犯罪データ１１２及び／又はイベントスケジュールデータ１１４に基づいて決定され得る。コンピューティングデバイス１０２は、例えば安全性レベルが閾値レベル以下に落ちたときアラートをシグナリングすることにより、ユーザに安全性レベルを積極的に警告することができる。システム１００は、したがって、安全性を改善し、これにより新しい場所を探索するようユーザを促す。
【００１１】
各モバイルコンピューティングデバイス１０２は、本明細書で説明される機能を実行する能力を有する任意のタイプのモバイルコンピューティングデバイスとして具現化されてよく、これらに限られないが、スマートフォン、携帯電話、ハンドセット、ウェアラブルコンピューティングデバイス、車載インフォテインメントデバイス、コンピュータ、タブレットコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、メッセージングデバイス、ネットワーク機器、ウェブ機器、分散コンピューティングシステム、マルチプロセッサシステム、プロセッサベースのシステム及び／又は家庭用電子機器を含む。図１に示されるように、例示のモバイルコンピューティングデバイス１０２は、プロセッサ１２０、入出力サブシステム１２２、メモリ１２４、データストレージデバイス１２６、通信回路１２８及び位置回路１３０を含む。当然、他の実施形態において、各モバイルコンピューティングデバイス１０２は、デスクトップコンピュータで通常見られるもの（例えば様々な入出力デバイス）のような他の又は追加のコンポーネントを含んでもよい。さらに、一部の実施形態では、例示のコンポーネントのうちの１つ以上を別のコンポーネントに組み込んでよく、あるいは他の方法で別のコンポーネントの一部を形成してもよい。一部の実施形態では、例えばメモリ１２４又はその一部が、プロセッサ１２０に組み込まれることがある。
【００１２】
プロセッサ１２０は、本明細書で説明される機能を実行することができる任意のタイプのプロセッサとして具現化され得る。例えばプロセッサ１２０は、シングルコア若しくはマルチコアプロセッサ、デジタル信号プロセッサ、マイクロコントローラ又は他のプロセッサ若しくは処理／制御回路として具現化され得る。同様に、メモリ１２４は、本明細書で説明される機能を実行することができる任意のタイプの揮発性若しくは不揮発性のメモリ又はデータストレージとして具現化され得る。動作において、メモリ１２４は、オペレーティングシステム、アプリケーション、プログラム、ライブラリ及びドライバのように、モバイルコンピューティングデバイス１０２の動作中に使用される様々なデータ及びソフトウェアを格納することができる。メモリ１２４は、I/Oサブシステム１２２を介してプロセッサ１２０に通信可能に結合されてよく、I/Oサブシステム１２２は、プロセッサ１２０、メモリ１２４及びモバイルコンピューティングデバイス１０２の他のコンポーネントによる入出力動作を容易にする回路及び／又はコンポーネントとして具現化され得る。例えばI/Oサブシステム１２２は、メモリコントローラハブ、入出力制御ハブ、ファームウェアデバイス、通信リンク（すなわち、ポイントツーポイントリンク、バスリンク、ワイヤ、ケーブル、光ガイド、プリント回路基板トレース等）及び／又は入出力動作を容易にする他のコンポーネント及びサブシステムとして具現化され得るか、あるいはこれらを含み得る。一部の実施形態において、I/Oサブシステム１２２は、システムオンチップ（SoC）の一部を形成することがあり、プロセッサ１２０、メモリ１２４及びモバイルコンピューティングデバイス１０２の他のコンポーネントと一緒に単一の集積回路チップ上に統合されてもよい。
【００１３】
データストレージデバイス１２６は、例えばメモリデバイス及び回路、メモリカード、ハードディスクドライブ、半導体ドライブ又は他のデータストレージデバイスのように、データの短期又は長期のストレージのために構成される任意のタイプの１つ又は複数のデバイスとして具現化され得る。データストレージデバイス１２６は、ネットワーク状態データ１０８及び／又は地図データ１１０を永続的に又は一時的に記憶することができる。一部の実施形態において、データストレージデバイス１２６は、犯罪データ１１２及び／又はイベントスケジュールデータ１１４を永続的に又は一時的に記憶することができる。
【００１４】
モバイルコンピューティングデバイス１０２の通信回路１２８は、モバイルコンピューティングデバイス１０２、クラウドソーシングサーバ１０４、GISサーバ１０６及び／又はネットワーク１１６上の他のリモートデバイスの間の通信を可能にする能力を有する、任意の通信回路、デバイス又はその集合として具現化され得る。通信回路１２８は、任意の１つ以上の通信技術（例えば無線又は有線通信）及び関連するプロトコル（例えば3G、LTE、Bluetooth（登録商標）、Wi-Fi（登録商標）、WiMAX等）を使用して、そのような通信を達成するよう構成され得る。
【００１５】
モバイルコンピューティングデバイス１０２の位置回路１３０は、モバイルコンピューティングデバイス１０２の正確な位置又は概略位置（approximate  position）を決定する能力を有する任意のタイプの回路として具現化され得る。例えば位置回路１３０は、モバイルコンピューティングデバイス１０２の正確な座標を決定する能力を有する、全地球測位システム（GPS）受信機として具現化され得る。他の実施形態では、位置回路１３０は、通信回路１２８によって与えられる、既知の位置のセルラネットワークタワーまでの距離又は角度を使用して、モバイルコンピューティングデバイス１０２の位置を三角測量又は三辺測量（trilaterate）してもよい。他の実施形態において、位置回路１３０は、通信回路１２８を使用して、既知の位置を有する無線ネットワークに対する関連に基づいて、モバイルコンピューティングデバイス１０２の概略位置を決定することができる。
【００１６】
例示の実施形態において、モバイルコンピューティングデバイス１０２は、ディスプレイ１３２、オーディオデバイス１３４及び触覚デバイス１３６を更に含む。モバイルコンピューティングデバイス１０２のディスプレイ１３２は、液晶ディスプレイ（LCD）、発光ダイオード（LED）、プラズマディスプレイ、陰極線管（CRT）又は他のタイプのディスプレイデバイスのように、デジタル情報を表示する能力を有する任意のタイプのディスプレイとして具現化され得る。一部の実施形態において、ディスプレイ１３２は、モバイルコンピューティングデバイス１０２とのユーザ対話を可能にするタッチスクリーンに結合され得る。オーディオデバイス１３４は、スピーカ、オーディオトランスデューサ、オーディオ出力ジャック、デジタルアナログ変換器（DAC）又は他のタイプのオーディオデバイスのように、出力用にオーディオ信号を生成する能力を有する任意のデバイスとして具現化され得る。触覚デバイス１３６は、バイブレータ、ブザー、フォースフィードバックデバイス又は任意の他の触覚フィードバックデバイスのように、モバイルコンピューティングデバイス１０２のユーザに触覚フィードバックを提供する能力を有する任意のデバイスとして具現化され得る。触覚デバイス１３６は、モバイルコンピューティングデバイス１０２によって使用され、他の近くの人によって可視又は可聴ではなく、あるいは他の方法で容易に検出可能でない通知を、ユーザに提供することができる。
【００１７】
一部の実施形態において、例示のモバイルコンピューティングデバイス１０２は、ローカルネットワーク状態データ１３８を含み得る。ローカルネットワーク状態データ１３８は、モバイルコンピューティングデバイス１０２によって生成され、クラウドソーシングサーバ１０４からキャッシュされ、あるいは他の方法でモバイルコンピューティングデバイス１０２上に永続的又は一時的に格納される、ネットワーク状態データ１０８の一部又は全てを含み得る。ローカルネットワーク状態データ１３８は、任意のタイプのデータストレージデバイスとして具現化されてよく、一部の実施形態では、データストレージデバイス１２６及び／又はメモリ１２４の一部として格納されてもよい。
【００１８】
クラウドソーシングサーバ１０４は、任意の数のモバイルコンピューティングデバイス１０２から受け取ったネットワーク状態データ１０８を管理するよう構成される。クラウドソーシングサーバ１０４は、本明細書で説明される機能を実行する能力を有する、任意のタイプのサーバコンピューティングデバイス又はデバイスの集合として具現化されてよい。したがって、クラウドソーシングサーバ１０４は、単一のサーバコンピューティングデバイスとして、あるいはサーバ及び関連するデバイスの集合として具現化され得る。例えば一部の実施形態において、クラウドソーシングサーバ１０４は、ネットワーク１１６にまたがって分散され、かつパブリック又はプライベートのクラウド内で動作する、複数のコンピューティングデバイスから形成される「仮想サーバ」として具現化され得る。したがって、クラウドソーシングサーバ１０４は、単一のサーバコンピューティングデバイスとして具現化されるよう、図１に図示され、以下で説明されるが、クラウドソーシングサーバ１０４は、以下で説明される機能を促進するように協働する複数のデバイスとして具現化されてもよいことを認識されたい。例示として、クラウドソーシングサーバ１０４は、プロセッサ１４０、I/Oサブシステム１４２、メモリ１４４、データストレージデバイス１４６、通信回路１４８、並びに／あるいはサーバ又は同様のコンピューティングデバイス内で一般的に見られる他のコンポーネント及びデバイスを含む。クラウドソーシングサーバ１０４のこれらの個々のコンポーネントは、モバイルコンピューティングデバイス１０２の対応するコンポーネントと類似することがあり、その説明は、クラウドソーシングサーバ１０４の対応するコンポーネントに適用可能であるので、本開示を曖昧にしないようにするため、ここでは繰り返し説明しない。
【００１９】
地理情報システム（GIS）サーバ１０６は、地理的位置に関連する情報を格納及び管理するよう構成される。例えばそのような情報の各アイテムをエンコードし、索引付けし、プロットしあるいは他の方法で特定の地理的位置に関連付けることができる。そのような地理情報は、これらには限られないが、地図データ１１０、犯罪データ１１２及びイベントスケジュールデータ１１４を含み得る。GISサーバ１０６は、本明細書で説明される機能を実行する能力を有する任意のタイプのサーバコンピューティングデバイス及びデバイスの集合として具現化され得る。したがって、（クラウドソーシングサーバ１０４と同様に）GISサーバ１０６は、ネットワーク１１６にまたがって分散され、かつパブリック又はプライベートのクラウド内で動作する、複数のコンピューティングデバイスから形成される「仮想サーバ」として具現化され得る。したがって、GISサーバ１０６は、プロセッサ、I/Oサブシステム、メモリ、データストレージデバイス、通信回路、並びに／あるいはサーバ又は同様のコンピューティングデバイス内で一般的に見られる他のコンポーネント及びデバイスを含むことができる。GISサーバ１０６のこれらの個々のコンポーネントは、モバイルコンピューティングデバイス１０２及び／又はクラウドソーシングサーバ１０４の対応するコンポーネントと類似することがあり、本開示を曖昧にしないようにするため、図示されていない。一部の実施形態（図示せず）では、クラウドソーシングサーバ１０４及びGISサーバ１０６の双方が、同じ物理的なサーバデバイス又はデバイスの集合によって具現化されてもよい。
【００２０】
ネットワーク状態データ１０８、地図データ１１０、犯罪データ１１２及びイベントスケジュールデータ１１４は、任意のネットワークアクセス可能なデータストレージとして具現化されてよく、限定ではないが、データベース、ファイルサーバ、ネットワークアタッチドストレージ又はストレージエリアネットワークを含む。ネットワーク状態データ１０８は、モバイルコンピューティングデバイス１０２及びクラウドソーシングサーバ１０４のいずれか又は双方に対してアクセス可能であるか、これらのいずれか又は双方によって管理され得る。したがって、ネットワーク状態データ１０８の一部又は全てが、各モバイルコンピューティングデバイス１０２のローカルネットワーク状態データ１３８内で、かつ／又はクラウドソーシングサーバ１０４のデータストレージデバイス１４６内で格納され得る。地図データ１１０、犯罪データ１１２及びイベントスケジュールデータ１１４は、GISサーバ１０６に対してアクセス可能にされるか、GISサーバ１０６によって管理され得る。各モバイルコンピューティングデバイス１０２及び／又はクラウドソーシングサーバ１０４は、GISサーバ１０６を介してそのような地理データにアクセスすることができる。
【００２１】
以下でより詳細に議論されるように、モバイルコンピューティングデバイス１０２、クラウドソーシングサーバ１０４及びGISサーバ１０６は、相互に、かつ／又はネットワーク１１６上の他のリモートデバイスとデータを送受信するように構成され得る。ネットワーク１１６は、例えば無線セルタワーとして具現化され得る複数のネットワークノード１１８を含む。ネットワークノード１１８の各々は、関連する地理的なカバレッジエリア及び信号強度を有することができる。したがって、ネットワーク１１６を介したモバイルコンピューティングデバイス１０２からの通信は、モバイルコンピューティングデバイス１０２の現在の地理的位置又は他の現在のコンテキストに応じて、異なるネットワークノード１１８に接続し得る。ネットワーク１１６及び／又はネットワークノード１１８は、任意の数の様々な有線及び／又は無線ネットワークとして具現化され得る。例えばネットワーク１１６は、有線又は無線のローカルエリアネットワーク（LAN）、有線又は無線のワイドエリアネットワーク（WAN）、セルラネットワーク及び／又はインターネットのように公にアクセス可能なグローバルネットワークとして具現化され得るか、あるいはこれらを含むことができる。したがって、ネットワーク１１６は、システム１００のデバイスの間の通信を容易にするよう、追加のコンピュータ、ルータ及びスイッチのような任意の数の追加のデバイスを含むことができる。
【００２２】
次に図２を参照すると、図示される実施形態では、モバイルコンピューティングデバイス１０２は、動作中に環境２００を確立する。例示の環境２００は、ネットワークモニタリングモジュール２０２、方向モジュール２０４、ルート決定モジュール２０６を含み、一部の実施形態ではネットワーク状態アップロードモジュール２０８も含む。環境２００の様々なモジュールは、ハードウェア、ファームウェア、ソフトウェア及びその組合せとして具現化され得る。
【００２３】
ネットワークモニタリングモジュール２０２は、ネットワーク状態データ１０８をモニタして記録するように構成される。以下で更に説明されるように、ネットワーク状態データ１０８は、ネットワークタイプ、信号強度又は特定の位置におけるネットワーク接続に関連する任意の側面を記述することができる。一部の実施形態において、ネットワークモニタリングモジュール２０２は、ネットワーク状態データ１０８をモバイルコンピューティングデバイス１０２上にローカルに格納することができる。あるいはまた、一部の実施形態では、ネットワークモニタリングモジュール２０２は、ネットワーク状態データ１０８をネットワーク状態アップロードモジュール２０８に転送してもよい。
【００２４】
ネットワーク状態アップロードモジュール２０８は、ネットワーク状態データ１０８をクラウドソーシングサーバ１０４に伝送するよう構成される。ネットワーク状態データ１０８は、クラウドソーシングサーバ１０４により使用可能な任意のフォーマットで伝送され得る。以下で更に説明されるように、クラウドソーシングサーバ１０４は、複数のモバイルコンピューティングデバイス１０２によって収集されるネットワーク状態データ１０８を使用して、ルートを決定することができる。
【００２５】
方向モジュール２０４は、モバイルコンピューティングデバイス１０２のユーザから、開始位置から行き先位置までの方向を求める要求を受け取り、結果のルートをユーザに提示するよう構成される。例えば方向モジュール２０４は、ユーザ入力を受け取って、結果を表示する、地図（マッピング：mapping）アプリケーションとして具現化されるか、あるいは他の方法でこれを含むことができる。一部の実施形態において、方向モジュール２０４は、開始位置と行き先位置を含む方向を求める要求を、クラウドソーシングサーバ１０４に伝送することができる。
【００２６】
ルート決定モジュール２０６は、開始位置から行き先位置までの最適なルートを、ネットワーク状態データ１０８及び地図データ１１０に基づいて決定するよう構成される。以下で更に説明されるように、ルートは、開始位置から行き先位置までのルートに沿って複数の地理的位置を接続する、複数のルートセグメントを含むことができる。各ルートセグメントは、道路、橋又はハイウェイのような物理的接続又は物理的接続の一部に対応し得る。最適なルートは、受け入れ可能なネットワーク状態も有する、開始位置から行き先位置までの最短経路として具現化され得る。以下で更に説明されるように、ルート決定モジュール２０６は、ネットワーク状態データ１０８に基づいて道路コスト情報を調整し、次いでグラフ検索アルゴリズムを最短経路の発見に適用することによって、最適なルートを決定することができる。ルート決定モジュール２０６は、GISサーバ１０６を介して地図データ１１０にアクセスすることができ、あるいは、モバイルコンピューティングデバイス１０２上にローカルに格納される地図データ（図示せず）にアクセスしてもよい。
【００２７】
引き続き図２を参照すると、一部の実施形態において、クラウドソーシングサーバ１０４は、動作中に環境２２０を確立することができる。例示の実施形態２２０は、ネットワークデータ管理モジュール２２２及びルート決定モジュール２０６を含む。環境２２０の様々なモジュールが、ハードウェア、ファームウェア、ソフトウェア又はその組合せとして具現化され得る。
【００２８】
ネットワークデータ管理モジュール２２２は、１つ以上のモバイルコンピューティングデバイス１０２からネットワーク状態データ１０８を受け取って格納するように構成される。ネットワーク状態データ１０８は、クラウドソーシングサーバ１０４に対してアクセス可能なネットワークストレージ内に格納されるか、あるいはクラウドソーシングサーバ１０４によってローカルに格納されてもよい。
【００２９】
環境２２０のルート決定モジュール２０６は、環境２００のルート決定モジュール２０６と同様に構成される。特に、ルート決定モジュール２０６は、開始位置から行き先位置までの最適なルートを、ネットワーク状態データ１０８及び地図データ１１０に基づいて決定するよう構成される。開始位置及び行き先位置は、モバイルコンピューティングデバイス１０２のうちの１つから受け取られる、ルートの要求に含まれることがある。したがって、ルート決定モジュール２０６は、２つ以上のモバイルコンピューティングデバイス１０２に由来するネットワーク状態データ１０８と地図データ１１０とに基づいて、最適なルートを決定することができる。特に、ネットワーク状態データ１０８は、方向を現在要求しているモバイルコンピューティングデバイス１０２とは異なるモバイルコンピューティングデバイス１０２によって生成されたものであってよい。
【００３０】
次に図３を参照すると、使用に際して、モバイルコンピューティングデバイス１０２は、ネットワーク状態データ１０８を収集するための方法３００を実行することができる。方法３００はブロック３０２で始まり、ブロック３０２において、モバイルコンピューティングデバイス１０２は、ネットワーク状態データ１０８を収集するかどうかを判断する。例えばモバイルコンピューティングデバイス１０２は、ユーザコマンドに応答してネットワーク状態データ１０８を収集することができる。別の例として、モバイルコンピューティングデバイス１０２は、ネットワーク状態データ１０８を、構成設定に基づいて自動的に、かつ／又はバックグラウンドで収集することができる。ネットワーク状態データ１０８を収集しない場合、方法３００はブロック３０２にループバックして、ネットワーク状態データ１０８を収集するかどうかの判断を続ける。ネットワーク状態データ１０８を収集する場合、方法３００はブロック３０４に進む。
【００３１】
ブロック３０４において、モバイルコンピューティングデバイス１０２は、当該モバイルコンピューティングデバイス１０２の位置を決定する。モバイルコンピューティングデバイス１０２は、位置回路１３０から受け取ったデータに基づいて、位置を決定することができる。モバイルコンピューティングデバイス１０２は、絶対位置、例えばGPS座標を決定することができ、あるいは道路又は他の経路のような１つ以上のルートセグメントに関連付けられる位置を決定してもよい。
【００３２】
ブロック３０６において、モバイルコンピューティングデバイス１０２は、現在の位置に関連付けられるネットワーク状態情報を決定する。ネットワーク状態情報は、現在の位置におけるネットワーク接続の品質及び可用性を記述する任意の情報、これらの品質及び可用性に基づく任意の情報、あるいはこれらの品質及び可用性に関連する任意の情報を含む。モバイルコンピューティングデバイス１０２は、通信回路１２８によって受け取った情報を分析することにより、ネットワーク状態情報を決定することができる。あるいはまた、一部の実施形態において、モバイルコンピューティングデバイス１０２は、道路又はハイウェイのようなルートセグメントに沿った幾つかの位置について受け取ったデータを平均し、そのセグメントについての平均状態データを生成することによって、ネットワーク状態情報を決定することができる。一部の実施形態では、ブロック３０８において、モバイルコンピューティングデバイス１０２は、現在の位置で利用可能なネットワークタイプを決定することができる。ネットワークタイプは、無線ネットワーク技術及び／又はプロトコル（例えばCDMA、GSM（登録商標）、LTE、Wi-Fi）、ネットワークスピード（例えば3G、4G）、周波数帯域又は任意の他のネットワーク分類を含み得る。一部の実施形態では、ブロック３１０において、モバイルコンピューティングデバイス１０２は、現在の位置における信号強度を決定することができる。モバイルコンピューティングデバイス１０２は、通信回路１２８によって受け取った情報を使用して信号強度を決定することができる。
【００３３】
ブロック３１２において、モバイルコンピューティングデバイス１０２は、ネットワーク状態情報及び関連するデバイス位置を（例えば相互に関連付けて）ネットワーク状態データ１０８に格納することができる。一部の実施形態では、ブロック３１４において、モバイルコンピューティングデバイス１０２は、ネットワーク状態データ１０８をローカルに、例えばモバイルコンピューティングデバイス１０２のデータストレージデバイス１２６に格納することができる。あるいはまた、一部の実施形態では、ブロック３１６において、モバイルコンピューティングデバイス１０２は、ネットワーク状態データ１０８を、格納のためにクラウドソーシングサーバ１０４に伝送することができる。以下で更に説明されるように、クラウドソーシングサーバ１０４は、多くのモバイルコンピューティングデバイス１０２から受け取ったネットワーク状態データ１０８を使用して、位置間のルートをマップすることができる。多くのモバイルコンピューティングデバイス１０２からネットワーク状態データを収集することは、クラウドソーシングサーバ１０４が、決定されるルートに沿って進んだことのないユーザのために、例えばネットワーク状態情報に基づいてルートを決定することを可能にする。ネットワーク状態データ１０８を格納した後、方法３００はブロック３０２にループバックして、ネットワーク状態データ１０８の収集を続ける。
【００３４】
次に図４を参照すると、使用に際して、モバイルコンピューティングデバイス１０２及び／又はクラウドソーシングサーバ１０４は、ネットワーク状態データ１０８に基づいてルートを決定するための方法４００を実行することができる。以下で説明されるように、方法４００は、モバイルコンピューティングデバイス１０２上でローカルに実行されてよく、モバイルコンピューティングデバイス１０２からの要求に応答してクラウドソーシングサーバ１０４上でリモートに実行されてもよい。あるいはまた、方法４００の一部が、任意の組合せでモバイルコンピューティングデバイス１０２及び／又はクラウドソーシングサーバ１０４によって実行されてもよいことを理解されたい。方法４００はブロック４０２で始まり、ブロック４０２において、モバイルコンピューティングデバイス１０２及び／又はクラウドソーシングサーバ１０４が、新たなルートを探すかどうかを判断する。新たなルートを探すことは、例えばモバイルコンピューティングデバイス１０２のアプリケーションの開始、あるいはクラウドソーシングサーバ１０４へのネットワーク要求の開始のように、モバイルコンピューティングデバイス１０２のユーザからのコマンドに応答して開始されてよい。新たなルートを決めない場合、方法４００はブロック４０２にループバックして、引き続き、新たなルートを発見するコマンドを待つ。新たなルートを決める場合、方法４００はブロック４０４に進む。
【００３５】
ブロック４０４において、モバイルコンピューティングデバイス１０２及び／又はクラウドソーシングサーバ１０４は、要求ルートの開始位置及び行き先位置を受け取るか、あるいは他の方法で決定する。開始位置及び行き先位置は、例えば通りの住所、地理的座標、関心点、場所の名前又は他の位置識別子のような任意の適切なフォーマットで指定され得る。一部の実施形態では、ブロック４０６において、モバイルコンピューティングデバイス１０２は、ユーザ入力から、例えばナビゲーションアプリケーションへのタッチスクリーン入力から、開始位置及び／又は行き先位置を受け取ることができる。あるいはまた、一部の実施形態では、ブロック４０８において、クラウドソーシングサーバ１０４は、開始位置及び行き先位置を、モバイルコンピューティングデバイス１０２から、ネットワーク１１６上で受け取られる要求の一部として受け取ることができる。一部の実施形態では、ブロック４１０において、モバイルコンピューティングデバイス１０２及び／又はクラウドソーシングサーバ１０４は、開始位置又は行き先位置を推論することができる。例えば開始位置は、位置回路１３０を使用して決定されるように、モバイルコンピューティングデバイス１０２の現在の位置となるように推論され得る。
【００３６】
ブロック４１２において、モバイルコンピューティングデバイス１０２及び／又はクラウドソーシングサーバ１０４は、道路コスト情報を決定することができる。道路コスト情報は、２つの地理的位置の間を移動する相対的コストの任意の指標として具現化され得る。道路コスト情報は、ローカルに格納されるかネットワーク１１６を介してアクセス可能な地図データ１１０からロードされ得る。一部の実施形態において、道路コスト情報は、地理的位置を表すノードと、地理的位置の間のルートセグメントに関連付けられる道路コストを表すエッジとを有する、グラフデータ構造として具現化され得る。例えば図５を参照すると、図５００は、そのようなグラフ構造を示している。ノード５０２からノード５０８は、地理的位置を表し、ノード間のエッジは、ノードを接続しているルートセグメントを表す。エッジは、無次元の整数として示される道路コスト情報でラベル付けされる。図４に戻ると、一部の実施形態では、ブロック４１４において、モバイルコンピューティングデバイス１０２及び／又はクラウドソーシングサーバ１０４は、位置間の距離情報に基づいて道路コストを決定することができる。一部の実施形態では、ブロック４１６において、モバイルコンピューティングデバイス１０２及び／又はクラウドソーシングサーバ１０４は、位置間の移動時間に基づいて道路コストを決定することができる。あるいはまた、一部の実施形態では、ブロック４１８において、モバイルコンピューティングデバイス１０２及び／又はクラウドソーシングサーバ１０４は、トラフィック情報に基づいて道路コストを決定することができる。当然、他の実施形態では、道路コスト情報は、２地点間のルートセグメントに沿った地理的ルーティングに関連する任意の他のデータ又はデータの組合せに基づくものであってよい。例えば一部の実施形態では、道路コストデータは、距離、時間及び／又はトラフィック情報の集約であってよく、ユーザの望み又は目的（例えば最短ルート、最速ルート等）に対して調整可能であり、あるいはこれらに依存し得る。
【００３７】
ブロック４２０において、モバイルコンピューティングデバイス１０２及び／又はクラウドソーシングサーバ１０４は、ルートを生成する際にネットワーク状態を考慮するかどうかを判断する。ネットワーク状態は、例えばユーザ要求又はデバイスプリファレンスに基づいて考慮され得る。一部の実施形態では、関連するルートについて十分なネットワーク状態データ１０８が存在する場合、ネットワーク状態を考慮することができる。ネットワーク状態を考慮しない場合、方法４００は、以下で説明されるブロック４２４までスキップして進む。ネットワーク状態を考慮する場合、方法４００はブロック４２２に進む。
【００３８】
ブロック４２２において、モバイルコンピューティングデバイス１０２及び／又はクラウドソーシングサーバ１０４は、ネットワーク状態データ１０８に基づいて道路コスト情報を調整する。道路コスト情報は、ルーティングプロセスにネットワーク状態を考慮させるよう、任意の方法で調整され得る。例えば一部の実施形態では、プアな（poor）ネットワーク状態（例えば劣性のネットワークタイプ、弱い信号強度、むらのあるカバレッジ等）を有する地理的位置の間のルートセグメントについて、道路コストが増加することがある。上述のように、道路コスト情報は、任意のモバイルコンピューティングデバイス１０２によって生成されるネットワーク状態データ１０８に基づいて調整され得る；言い換えると、クラウドソーシングサーバ１０４は、幾つかのモバイルコンピューティングデバイス１０２に由来するネットワーク状態データ１０８を使用して、道路コスト情報を調整することができる。さらに、方法４００の実行中に起こるように図示されているが、道路コスト情報を任意の時間に調整することができる。例えば道路コスト情報は、モバイルコンピューティングデバイス１０２によって生成されるとき、かつ／又はクラウドソーシングサーバ１０４によって受け取られるときに、後の使用のために調整されてキャッシュされてもよい。再び図５を参照して、道路コスト情報が、図５００内で示されるグラフデータ構造のエッジとして具現化されることを考える。この例では、プアなネットワーク状態のルートセグメントに対応するエッジについて、道路コストの値は増加し得る。例えばノード５０２、５０６の間のエッジの道路コスト値は、プアなネットワーク状態に基づいて、１０から１６まで増加し得る。反対に、ノード５０２、５０４の間のエッジの道路コスト値は、受容可能なネットワーク状態に基づいて変化しないままであり得る。道路コストに対する増加又は調整の具体的な量は、例えば基本となる道路コストの割合又はその関数として、あるいは他の基準として、低品質ネットワーク状態の程度に基づくものであってよい。加えて、一部の実施形態において、特定のセグメントについての道路コストは、高品質ネットワーク状態に基づいて減少することもある。
【００３９】
図４に戻ると、ブロック４２４において、モバイルコンピューティングデバイス１０２及び／又はクラウドソーシングサーバ１０４は、開始位置から行き先位置までの最適なルートを、道路コスト情報に基づいて決定することができる。したがって、プロセスがネットワーク状態を考慮するとき、最適なルートは、ネットワーク状態を反映するように調整された道路コスト情報に基づいて決定され得る。最適なルートを見つけるために任意の適切なアルゴリズムが使用され得る。例えば一部の実施形態では、ダイクストラ法（Dijkstra's  algorithm）のように、最短経路のグラフ検索アルゴリズムが使用され得る。あるいはまた、一部の実施形態において、モバイルコンピューティングデバイス１０２及び／又はクラウドソーシングサーバ１０４は、ネットワーク状態を考慮する（例えば距離、移動時間、交通渋滞等を考慮する）ことなく最適なルートを生成し、そのルートを、ネットワーク状態に基づいて（例えばプアなネットワーク状態を有するルートセグメントを避けるよう再ルーティングすることによって）調整することができる。
【００４０】
再び図５を参照して、ノード５０２とノード５０８との間の最適なルートを見つけるためのダイクストラ法の例示の適用を考える。バックグラウンドとして、ダイクストラ法を実行するために、ノードの全てが最初に未訪問としてマークされ、現在のノードが最初に選択される。現在のノードについて、全ての近傍ノードまでの暫定距離（tentative  distance）が、各対応するエッジの道路コスト値に基づいて計算される。各近傍ノードについて、暫定距離が、以前に計算された暫定距離未満である場合、その暫定距離を記録する。全ての近傍ノードについて暫定距離を計算した後、現在のノードは訪問済みとしてマークされる。最も少ない暫定距離を有する未訪問のノードが次の現在のノードとして選択され、アルゴリズムは、現在のノードが行き先ノードとなるまで繰り替えされる。完了後、最も小さな計算距離を有するノードに続いて、行き先ノードから開始ノードまでグラフ中をバックドラックすることによって、最適なルートを発見することができる。
【００４１】
アルゴリズムの適用を説明すると、各ルートセグメントに沿ってネットワーク状態を考慮することなく、初めにノード５０２からノード５０８までのルートを見つけることを考える。現在のノードは、ノード５０２で始まり、ノード５０４が距離７を有するものとして暫定的にマークされ、ノード５０６は距離１０を有するものとして暫定的にマークされる。ノード５０２が訪問済みとしてマークされると、現在のノードはノード５０４になる。ノード５０４からノード５０６までの暫定距離は７＋９＝１６であり、以前に計算された距離１０よりも大きいので無視される。ノード５０８までの暫定距離は２１としてマークされる。ノード５０４が訪問済みとしてマークされて、現在のノードはノード５０６になる。ノード５０８までの暫定距離は１２としてマークされ、以前に計算された暫定距離を置換する。ノード５０６が訪問済みとしてマークされ、現在のノードはノード５０８になる。現在のノードは行き先ノードであるので、アルゴリズムは完了する。この説明的な実例では、ネットワーク状態を考慮しない最短距離は、ノード５０２からノード５０６を通ってノード５０８までであり、距離１２を有する。
【００４２】
次に、ネットワーク状態を考慮してノード５０２からノード５０８までのルートを見つけることを考える。図示される例では、ノード５０２からノード５０６までのルートセグメントと、ノード５０６からノード５０８までのルートセグメントが、プアなネットワーク状態を有する。したがって、これらのルートセグメントについての道路コストは、それぞれ１０から１６まで、２から６まで上昇する。アルゴリズムを適用すると、現在のノードはノード５０２で始まり、ノード５０４は距離７を有するものとして暫定的にマークされ、ノード５０６は距離１６を有するものとして暫定的にマークされる。ノード５０２が訪問済みとマークされて、現在のノードはノード５０４になる。ノード５０４からノード５０６までの暫定距離は、７＋９＝１６であり、以前に計算された距離１６と同じであるので無視され得る。ノード５０８までの暫定距離は２１としてマークされる。ノード５０４が訪問済みとマークされて、現在のノードはノード５０６になる。ノード５０８までの暫定距離は、１６＋６＝２２であり、以前に計算された距離２１よりも大きいので無視される。ノード５０６が訪問済みとしてマークされて、現在のノードはノード５０８になる。現在のノードは行き先ノードであるので、アルゴリズムは完了する。この図示される例では、ネットワーク状態を考慮した最短経路は、ノード５０２からノード５０４を通ってノード５０８までであり、距離２１を有する。したがって、この例では、プアなネットワーク状態を有するルートセグメント（ノード５０２からノード５０６までのセグメントと、ノード５０６からノード５０８までのセグメント）が回避される。
【００４３】
図４に戻ると、最適なルートを決定した後、ブロック４２６において、モバイルコンピューティングデバイス１０２及び／又はクラウドソーシングサーバ１０４は、ユーザにルートを提示する。一部の実施形態では、ブロック４２８において、モバイルコンピューティングデバイス１０２は、ルートをユーザインタフェースに出力することができる。モバイルコンピューティングデバイス１０２は、任意のユーザインタフェースモードを使用してよく、例えばディスプレイ１３２を使用してグラフィカルな地図を表示し、あるいはオーディオデバイス１３４を使用して可聴な指示（direction）を出力することができる。あるいはまた、一部の実施形態では、ブロック４３０において、クラウドソーシングサーバ１０４は、最適なルートをモバイルコンピューティングデバイス１０２に伝送することができる。クラウドソーシングサーバ１０４は、モバイルコンピューティングデバイス１０２によって使用可能な任意のフォーマットでルートを転送することができる。例えば一部の実施形態において、クラウドソーシングサーバ１０４は、最適なルートを説明するフォーマット済みのハイパーテキスト及び／又はデータを伝送することができる。あるいはまた、クラウドソーシングサーバ１０４は、ユーザへの提示のためにモバイルコンピューティングデバイス１０２によって解析、レンダリング及び／又は他の方法で処理される、最適なルートを説明するデータを伝送してもよい。最適なルートをユーザに提示した後、方法４００はブロック４０２にループバックして、ルートについての別の要求を提供する。
【００４４】
図６を参照すると、一部の実施形態では、モバイルコンピューティングデバイス１０２は、代替又は追加として、動作中に環境６００を確立することができる。例示の環境６００は、コンテキスト決定モジュール６０２、位置予測モジュール６０４、安全性決定モジュール６０６及びユーザ通知モジュール６０８を含む。環境６００の様々なモジュールは、ハードウェア、ファームウェア、ソフトウェア又はその組合せとして具現化され得る。
【００４５】
コンテキスト決定モジュール６０２は、モバイルコンピューティングデバイス１０２のコンテキストを決定するよう構成される。デバイスコンテキストは、モバイルコンピューティングデバイス１０２の現在の位置、現在の状態又は現在の利用に関する情報の任意の組合せを含み得る。例えばデバイスコンテキストは、モバイルコンピューティングデバイス１０２の現在の位置、方向及びスピード、現在の時刻、ユーザの計画したルート、ユーザの現在の輸送手段（mode  of  transportation）、ユーザの現在の車両の特性又はこれらのデータの任意の組合せを含み得る。
【００４６】
位置予測モジュール６０４は、モバイルコンピューティングデバイス１０２の将来の位置を、現在のデバイスコンテキストに基づいて予測するよう構成される。位置は、モバイルコンピューティングデバイス１０２の現在の位置及び動きに基づいて、モバイルコンピューティングデバイス１０２の計画ルートに基づいて、モバイルコンピューティングデバイス１０２の将来の位置に関連する任意の他のコンテキストデータに基づいて予測され得る。予測された位置は、安全性決定モジュール６０６により安全性について評価される。
【００４７】
安全性決定モジュール６０６は、デバイスコンテキストに基づいて、予測された位置について安全性レベルを決定するよう構成される。安全性決定モジュール６０６はまた、決定した安全性レベルを閾値の安全性レベルと比較して、予測された位置の相対的な安全性を決定するようにも構成される。安全性レベルは、予測された安全性データ６１０、例えば犯罪データ１１２及び／又はイベントスケジュールデータ１１４に基づいて決定され得る。以下で更に説明されるように、犯罪データ１１２及びイベントスケジュールデータ１１４は、予測された位置に一般的に関連付けられる安全性レベルを決定するために使用されてよく、あるいはデバイスコンテキストに特有の安全性レベルを決定するために使用されてもよい。例えば犯罪データ１１２は、異なる時刻における犯罪率を示すデータを含むことがあり、安全性決定モジュール６０６は現在の時刻に基づいて安全性レベルを決定することができる。
【００４８】
ユーザ通知モジュール６０８は、予測された位置が相対的に安全でないときにユーザに通知するよう構成される。ユーザ通知モジュール６０８は、安全性レベルが閾値安全性レベルに対して所定の関係を有するとき、例えば安全性レベルが閾値より下にあるとき、ユーザに通知することができる。ユーザ通知モジュール６０８は、グラフィカルディスプレイ、可聴出力又は触覚フィードバック等のような任意の利用可能なユーザ対話モダリティを使用して、ユーザに通知することができる。
【００４９】
次に図７を参照すると、使用に際して、モバイルコンピューティングデバイス１０２は、安全でない位置をユーザに通知するための方法７００を実行することができる。方法７００はブロック７０２で始まり、ブロック７０２において、モバイルコンピューティングデバイス１０２は、当該モバイルコンピューティングデバイス１０２のコンテキストを決定する。デバイスコンテキストには、モバイルコンピューティングデバイス１０２の現在の位置、現在の状態又は現在の利用に関する任意の情報が含まれ得る。例えば一部の実施形態では、ブロック７０４において、モバイルコンピューティングデバイス１０２は、当該モバイルコンピューティングデバイス１０２の現在の位置を決定することができる。モバイルコンピューティングデバイス１０２は、位置回路１３０を使用して、その決定を行うことができる。一部の実施形態では、ブロック７０６において、モバイルコンピューティングデバイス１０２は、当該モバイルコンピューティングデバイス１０２の方向及び／又はスピードを決定することができる。方向及び／又はスピードデータは、位置回路１３０を使用して決定される位置データに基づいて、決定され得る。あるいはまた、方向及び／又はスピードデータを、モバイルコンピューティングデバイス１０２に結合される車両から受け取ることもできる。一部の実施形態では、ブロック７０８において、モバイルコンピューティングデバイス１０２は、モバイルコンピューティングデバイス１０２に関連付けられるローカルの時刻を決定することができる。
【００５０】
一部の実施形態では、ブロック７１０において、モバイルコンピューティングデバイス１０２は、計画ルートを決定することができる。例えばモバイルコンピューティングデバイス１０２は、例えば地図アプリケーションにおいて、ユーザから受け取った入力に基づいて、計画ルートを決定することができる。一部の実施形態では、モバイルコンピューティングデバイス１０２は、ルートの一部又は全てを推論することができ、例えば現在の位置から既知の行き先までのルートを決定することができる。加えて、一部の実施形態では、ブロック７１２において、モバイルコンピューティングデバイス１０２は、モバイルコンピューティングデバイス１０２に関連付けられる輸送手段（例えば徒歩、運転、公共交通手段等）を決定することができる。移動手段の決定は、位置回路１３０を使用して決定される位置又は移動データに基づくものであってよい。一部の実施形態では、ブロック７１４において、モバイルコンピューティングデバイス１０２は、モバイルコンピューティングデバイス１０２に関連付けられる車両（（乗り物）（vehicle））の現在の範囲を決定することができる。例えばモバイルコンピューティングデバイス１０２は、その車両と通信して、その車両が移動することができる距離を決定するのに使用され得る利用可能な燃料及び運転状態を参照することができる。
【００５１】
ブロック７１６において、モバイルコンピューティングデバイス１０２は、デバイスコンテキストに基づいて、評価用の位置を予測する。予測される位置は、モバイルコンピューティングデバイス１０２、したがってユーザが、将来訪問しそうな位置である。評価のために予測される将来の位置を使用することによって、モバイルコンピューティングデバイス１０２は、以下で議論されるようにユーザが予測位置に入るか到着する前に、潜在的な安全でない状態をユーザに警告することが可能である。一部の実施形態では、ブロック７１８において、モバイルコンピューティングデバイス１０２は、近くの行き先（nearby  destination）を決定することができる。例えば現在の位置、方向及びスピードが与えられると、モバイルコンピューティングデバイス１０２は、現在の移動方向で現在の位置に隣接する位置を予測することができる。予測位置までの距離は、例えばスピード又は移動手段に依存し得る。例えば徒歩のときは、予測位置は次のブロックであり、運転のときは、予測位置は次の地区（next  neighborhood）又は幹線道路であり得る。一部の実施形態では、ブロック７２０において、モバイルコンピューティングデバイス１０２は、予測ルート上の行き先を決定することができる。予測位置は、モバイルコンピューティングデバイス１０２の現在の位置に直接隣接しない予測ルートの一部の上であってよい。
【００５２】
ブロック７２２において、モバイルコンピューティングデバイス１０２は、デバイスコンテキストに基づいて、予測位置について安全性レベルを決定する。安全性レベルは、予測位置における犯罪の可能性に関連付けられる任意の定量可能な値として具現化され得る。例えば安全性レベルは犯罪データ１１２に基づくことができる。犯罪データ１１２は、特定の地理的位置についての犯罪の発生に関する任意のデータを含んでよく、例えば報告された犯罪の数、期間当たりの犯罪率、人口当たりの犯罪率、特定の地理的エリアにおける犯罪の可能性、特定の時刻における犯罪の可能性等である。犯罪データ１１２は全ての犯罪について集約されてよく、あるいは犯罪のサブセットについてのデータ（例えば暴力犯罪、窃盗犯罪）を含んでもよい。あるいはまた、安全性レベルは、イベントスケジュールデータ１１４に基づくことができる。モバイルコンピューティングデバイス１０２は、いずれかの大群衆が集まるイベント（mass  crowd  event）が、予測位置及びデバイスコンテキスト（例えば日時）についてスケジュールされているかどうかを判断することができる。大群衆が集まるイベントには、スポーツイベント、フェスティバル、抗議行動及び多くの人々を集中した地理的エリアに引き寄せる可能性が高い他のイベントが含まれ得る。大群衆が集まるイベントの存在により、モバイルコンピューティングデバイス１０２は、より低い安全性レベルを決定することになる。犯罪データ１１２及び／又はイベントスケジュールデータ１１４のような所定の安全性データに基づいて安全性レベルを決定することに加えて、モバイルコンピューティングデバイス１０２は、現在のデバイスコンテキストに基づいて安全性レベルを決定することもある。例えば特定の位置について、決定された安全性レベルは、同じ位置について日中よりも夜の方が低いことがある。一部の実施形態では、ブロック７２４において、モバイルコンピューティングデバイス１０２は、犯罪データ１１２及び／又はイベントスケジュールデータ１１４をGISサーバ１０６から取り出すことができる。
【００５３】
ブロック７２６において、モバイルコンピューティングデバイス１０２は、決定された安全性レベルを、閾値の安全性レベルと比較して、予測位置の安全性を判断する。一部の実施形態において、その比較はバイナリであってよく、その結果は、予測位置が安全であるか、安全でないかの判断である。一部の実施形態において、比較は、完全に安全であるレベルから安全に安全でないレベルまでの一連の相対的な安全性レベルを判断することができる。ブロック７２８において、モバイルコンピューティングデバイス１０２は、予測される位置が安全でないかどうかを判断する。予測位置が安全（又は完全に安全）である場合、方法７００はブロック７０２にループバックして、デバイスコンテキストのモニタリングを続ける。予測位置が安全でない（又は完全に安全でない）場合、方法７００はブロック７３０に進む。
【００５４】
ブロック７３０において、モバイルコンピューティングデバイス１０２は、安全性レベルをユーザに通知する。モバイルコンピューティングデバイス１０２は、任意の利用可能なユーザ対話モードを使用してユーザに通知することができる。一部の実施形態では、ブロック７３２において、モバイルコンピューティングデバイス１０２は、ユーザのために視覚的、可聴又は触覚ワーニングを生成することができる。ワーニングは、その性質上進行性であり得る；すなわち、ワーニングは、予測位置の安全性レベルが下がると、振幅及び／又は緊急性が上がることがある。モバイルコンピューティングデバイス１０２が安全でない位置に留まっている間、ワーニングを表示し続けるか、他の方法で維持し続けることができることを理解されたい。一部の実施形態において、ワーニングは、近くの人には警告又は邪魔しないようなやり方で生成され得る。例えばモバイルコンピューティングデバイス１０２は、危険なエリアに入ろうとするときに、触覚デバイス１３６をアクティブにしてユーザに通知することができる。モバイルコンピューティングデバイス１０２は、当該モバイルコンピューティングデバイス１０２が生成する他の通知とは別個に触覚信号（例えば振動パターン）を生成することができ、モバイルコンピューティングデバイス１０２を視覚的に参照する必要なく、ユーザが潜在的な危険性に気付くことを可能にする。別の例として、モバイルコンピューティングデバイス１０２は、ユーザに通知するために、ディスプレイ１３２上にアイコン又はワーニングラベル等のような視覚的インジケータを生成することができる。例えばモバイルコンピューティングデバイス１０２が、スマートめがねのようなウェアラブルコンピューティングデバイスとして具現化されるとき、視覚的インジケータを、モバイルコンピューティングデバイス１０２のユーザのみに対して可視になるよう配置されるヘッドアップディスプレイ１３２上に表示することができる。
【００５５】
一部の実施形態では、ブロック７３４において、モバイルコンピューティングデバイス１０２は、ユーザに対して代替ルートを提案することができる。代替ルートは、予測位置よりも安全性レベルがより高い代替方向、ルート又は行き先とすることができる。例えば再びヘッドアップディスプレイを有するウェアラブルコンピューティングデバイスを考えると、モバイルコンピューティングデバイス１０２は、単に、ユーザを相対的に安全な方向に導く矢印又は他の視覚的インジケータを表示することができる。別の例として、モバイルコンピューティングデバイス１０２は、ユーザを相対的に安全な方向に導く知覚信号を生成してもよい。例えばモバイルコンピューティングデバイス１０２は、安全でない予測位置に向かってポイントされたユーザのサイド上に振動をもたらし、ユーザがその方向に向かうべきでないことを示すことができる。別の例として、モバイルコンピューティングデバイス１０２は、ルートに沿って代替ルート及び／又は代替位置を生成することができる。例えば車で移動しているとき、モバイルコンピューティングデバイス１０２は、計画ルート沿いの特定の位置（例えばガソリンスタンド、休憩エリア等）が安全でないと判断し、代替位置（例えばより安全な位置にある代替ガソリンスタンド）を提案することができる。当然、モバイルコンピューティングデバイス１０２は、代替ルートを決定する際に、車両範囲（vehicle  range）のようなデバイスコンテキストを考慮することができる。
【００５６】
一部の実施形態では、ブロック７３６において、モバイルコンピューティングデバイス１０２は、地図上に安全性レベルのオーバーレイを提示することができる。安全性レベル情報の提示は、ユーザが代替ルートを決定すること、あるいは他の方法で安全性を評価することを可能にする。例えばモバイルコンピューティングデバイス１０２は、計画ルートに沿った地点についての安全性レベルをカラーコード化するか、他の方法で指示することができる。地図上の安全性レベルの提示は、スマートフォンや車載インフォテインメントデバイスのようなモバイルコンピューティングデバイス１０２の更に能力のある実施形態に適していることがある。安全性レベルをユーザに通知した後、方法７００はブロック７０２にループバックして、デバイスコンテキストのモニタリングを続ける。
【００５７】
例
本明細書で開示される技術の説明的な例を以下で与える。これらの技術の実施形態は、以下で説明される例の任意の１つ以上及び任意の組合せを含み得る。
【００５８】
例１は、方向ルーティング指示を生成するためのモバイルコンピューティングデバイスを含み、当該モバイルコンピューティングデバイスは、開始位置と行き先位置との間の１つ以上のルートを定義する複数のルートセグメントのうちのあるルートセグメントに関連付けられるネットワーク状態情報を決定し、ネットワーク状態情報を格納する、ネットワークモニタリングモジュールと；ネットワーク状態情報に応じて開始位置から行き先位置までのルートを決定する、ルート決定モジュールと；を備える。
【００５９】
例２は、例１に係る主題を含み、ネットワーク状態情報が、ルートセグメントに関連付けられるネットワークタイプを備える。
【００６０】
例３は、例１又は例２に係る主題を含み、ネットワーク状態情報が、ルートセグメントに関連付けられるネットワーク信号強度を備える。
【００６１】
例４は、例１〜例３のいずれかに係る主題を含み、ネットワーク状態情報を決定することは、モバイルコンピューティングデバイスの現在の位置を決定することと；モバイルコンピューティングデバイスの現在の位置に関連付けられるネットワーク状態情報を決定することと；ネットワーク状態情報を、複数のルートセグメントのうち現在の位置に関連付けられるルートセグメントに関連付けることと；を備える。
【００６２】
例５は、例１〜例４のいずれかに係る主題を含み、ネットワーク状態情報を決定することは、ルートセグメントに関連付けられるモバイルコンピューティングデバイスの複数の位置を決定することと；複数の位置について平均ネットワーク状態情報を決定することと；平均ネットワーク状態情報をルートセグメントに関連付けることとを含む。
【００６３】
例６は、例１〜例５のいずれかに係る主題を含み、ネットワーク状態情報を決定することは、ルートセグメントに関連付けられるネットワーク状態情報をクラウドソーシングサーバから受け取ることを備える。
【００６４】
例７は、例１〜例６のいずれかに係る主題を含み、ルートを決定することは、複数のルートセグメントに関連付けられる道路コスト情報を決定することと；ルートセグメントに関連付けられるネットワーク状態情報に基づいて、ルートセグメントに関連付けられる道路コスト情報を調整することと；複数のルートセグメントに関連付けられる調整された道路コスト情報に応じて、ルートを決定することと；を備える。
【００６５】
例８は、例１〜例７のいずれかに係る主題を含み、調整された道路コスト情報に応じて、ルートを決定することは、調整された道路コスト情報に基づいてダイクストラ最短経路グラフ検索法を実行することを備える。
【００６６】
例９は、例１〜例８のいずれかに係る主題を含み、ルートを決定することは、開始位置から行き先位置までの暫定ルートを決定することであって、暫定ルートがルートセグメントを含むことと；ルートセグメントに関連付けられるネットワーク状態情報に基づいて暫定ルートを変えることと；を備える。
【００６７】
例１０は、例１〜例９のいずれかに係る主題を含み、暫定ルートを変えることは、ルートセグメントに関連付けられるネットワーク状態情報が、基準のネットワーク状態に対して所定の関係を有するかどうかを判断することと；ネットワーク状態情報が、基準のネットワーク状態に対して所定の関係を有することに応答して、上記ルートセグメントを回避するように、ルートを再ルーティングすることと；を備える。
【００６８】
例１１は、方向ルーティング指示を生成するためのクラウドソーシングサーバを含み、当該クラウドソーシングサーバは：第１のモバイルコンピューティングデバイスからネットワーク状態情報を受け取るネットワークデータ管理モジュールであって、ネットワーク状態情報が、開始位置と行き先値との間の１つ以上のルートを定義する複数のルートセグメントのうちのあるルートセグメントに関連付けられる、ネットワークデータ管理モジュールと；（ｉ）開始位置から行き先位置までのルートを求める要求を第２のモバイルコンピューティングデバイスから受け取り、（ｉｉ）ネットワーク状態情報に応じて開始位置から行き先位置までのルートを決定する、ルート決定モジュールと；を備える。
【００６９】
例１２は、例１１に係る主題を含み、ルート決定モジュールは更に、第２のモバイルコンピューティングデバイスにルートを伝送する。
【００７０】
例１３は、例１１又は例１２に係る主題を含み、ネットワーク状態情報が、位置に関連付けられるネットワークタイプを備える。
【００７１】
例１４は、例１１〜例１３のいずれかに係る主題を含み、ネットワーク状態情報が、位置に関連付けられるネットワーク信号強度を備える。
【００７２】
例１５は、例１１〜例１４のいずれかに係る主題を含み、ルートを決定することは、複数のルートセグメントに関連付けられる道路コスト情報を決定することと；ルートセグメントに関連付けられるネットワーク状態情報に基づいて、ルートセグメントに関連付けられる道路コスト情報を調整することと；複数のルートセグメントに関連付けられる調整された道路コスト情報に応じて、ルートを決定することと；を備える。
【００７３】
例１６は、例１１〜例１５のいずれかに係る主題を含み、調整された道路コスト情報に応じて、ルートを決定することは、調整された道路コスト情報に基づいてダイクストラ最短経路グラフ検索法を実行することを備える。
【００７４】
例１７は、例１１〜例１６のいずれかに係る主題を含み、ルートを決定することは、開始位置から行き先位置までの暫定ルートを決定することであって、暫定ルートがルートセグメントを含むことと；ルートセグメントに関連付けられるネットワーク状態情報に基づいて暫定ルートを変えることと；を備える。
【００７５】
例１８は、例１１〜例１７のいずれかに係る主題を含み、暫定ルートを変えることは、ルートセグメントに関連付けられるネットワーク状態情報が、基準のネットワーク状態に対して所定の関係を有するかどうかを判断することと；ネットワーク状態情報が、基準のネットワーク状態に対して所定の関係を有することに応答して、上記ルートセグメントを回避するように、ルートを再ルーティングすることと；を備える。
【００７６】
例１９は、例１１〜例１８のいずれかに係る主題を含み、第１のモバイルコンピューティングデバイスは、第２のモバイルコンピューティングデバイスと異なる。
【００７７】
例２０は、例１１〜例１９のいずれかに係る主題を含み、第１のモバイルコンピューティングデバイスは、第２のモバイルコンピューティングデバイスと同じデバイスである。
【００７８】
例２１は、ユーザ安全性通知のためのモバイルコンピューティングデバイスを含み、当該モバイルコンピューティングデバイスは：モバイルコンピューティングデバイスのデバイスコンテキストを決定するコンテキスト決定モジュールと；デバイスコンテキストに基づいて、評価のために位置を予測する位置予測モジュールと；（ｉ）所定の安全性データとデバイスコンテキストに基づいて、予測された位置について安全性レベルを決定し、（ｉｉ）安全性レベルを閾値の安全性レベルと比較する安全性決定モジュールと；安全性レベルが、閾値の安全性レベルに対して所定の関係を有するという判断に応答して、安全性レベルをモバイルコンピューティングデバイスのユーザに通知するユーザ通知モジュールと；を備える。
【００７９】
例２２は、例２１に係る主題を含み、安全性レベルを決定することは、所定の犯罪データに基づいて、決定された位置に関連付けられる予測犯罪レベルを決定することを備える。
【００８０】
例２３は、例２１又は例２２に係る主題を含み、予測犯罪レベルを決定することは、地理情報システムサーバから所定の犯罪データを受け取ることを備える。
【００８１】
例２４は、例２１〜例２３のいずれかに係る主題を含み、安全性レベルを決定することは、決定された位置に関連付けられる、予測される大群衆が集まるイベントを決定することを備える。
【００８２】
例２５は、例２１〜例２４のいずれかに係る主題を含み、予測される大群衆が集まるイベントを決定することは、地理情報システムサーバから所定のイベントスケジュールを受け取ることを備える。
【００８３】
例２６は、例２１〜例２５のいずれかに係る主題を含み、安全性レベルをユーザに通知することは、ワーニング信号を生成することを備える。
【００８４】
例２７は、例２１〜例２６のいずれかに係る主題を含み、ワーニング信号は、可視、可聴又は触覚ワーニングを備える。
【００８５】
例２８は、例２１〜例２７のいずれかに係る主題を含み、ユーザ通知モジュールは更に、安全性レベルが閾値安全性レベルに対して所定の関係を有する間、ワーニング信号を維持する。
【００８６】
例２９は、例２１〜例２８のいずれかに係る主題を含み、安全性レベルをユーザに通知することは、提案される代替ルートをユーザに提示することを更に備える。
【００８７】
例３０は、例２１〜例２９のいずれかに係る主題を含み、提案される代替ルートを提示することは、視覚的方向インジケータを表示するか、触覚方向インジケータを生成することを備える。
【００８８】
例３１は、例２１〜例３０のいずれかに係る主題を含み、提案される代替ルートを提示することは、提案される代替ルートをモバイルコンピューティングの予測ルート上に提示することを備える。
【００８９】
例３２は、例２１〜例３１のいずれかに係る主題を含み、安全性レベルをユーザに通知することは、モバイルコンピューティングの予測ルートの地図上に安全性レベルをオーバーレイすることを備える。
【００９０】
例３３は、例２１〜例３２のいずれかに係る主題を含み、デバイスコンテキストは、モバイルコンピューティングデバイスの位置；モバイルコンピューティングデバイスの方向とスピード；時刻；モバイルコンピューティングデバイスの計画ルート；モバイルコンピューティングデバイスの輸送手段；又はモバイルコンピューティングデバイスに関連付けられる車両範囲を備える。
【００９１】
例３４は、例２１〜例３３のいずれかに係る主題を含み、デバイスコンテキストを決定することは、モバイルコンピューティングデバイスの計画ルートについて、ユーザから要求された行き先を受け取ることを備える。
【００９２】
例３５は、例２１〜例３４のいずれかに係る主題を含み、評価のために位置を予測することは、モバイルコンピューティングデバイスの現在の位置を決定することを備える。
【００９３】
例３６は、例２１〜例３５のいずれかに係る主題を含み、評価のために位置を予測することは、モバイルコンピューティングデバイスの近くの行き先を決定することを備える。
【００９４】
例３７は、例２１〜例３６のいずれかに係る主題を含み、評価のために位置を予測することは、モバイルコンピューティングデバイスの予測ルート上の行き先を決定することを備える。
【００９５】
例３８は、方向ルーティング指示を生成するための方法を含み、当該方法は、モバイルコンピューティングデバイスによって、開始位置と行き先位置との間の１つ以上のルートを定義する複数のルートセグメントのうちのあるルートセグメントに関連付けられるネットワーク状態情報を決定するステップと；モバイルコンピューティングデバイスによって、ネットワーク状態情報を格納するステップと；モバイルコンピューティングデバイスによって、ネットワーク状態情報に応じて開始位置から行き先位置までのルートを決定するステップと；を備える。
【００９６】
例３９は、例３８に係る主題を含み、ネットワーク状態情報を決定するステップは、ルートセグメントに関連付けられるネットワーク状態情報を決定するステップを備える。
【００９７】
例４０は、例３８又は例３９に係る主題を含み、ネットワーク状態情報を決定するステップは、ルートセグメントに関連付けられるネットワーク信号強度を決定するステップを備える。
【００９８】
例４１は、例３８〜例４０のいずれかに係る主題を含み、ネットワーク状態情報を決定するステップは、モバイルコンピューティングデバイスの現在の位置を決定するステップと；モバイルコンピューティングデバイスの現在の位置に関連付けられるネットワーク状態情報を決定するステップと；ネットワーク状態情報を、複数のルートセグメントのうち現在の位置に関連付けられるルートセグメントに関連付けるステップと；を備える。
【００９９】
例４２は、例３８〜例４１のいずれかに係る主題を含み、ネットワーク状態情報を決定するステップは、ルートセグメントに関連付けられるモバイルコンピューティングデバイスの複数の位置を決定するステップと；複数の位置について平均ネットワーク状態情報を決定するステップと；平均ネットワーク状態情報をルートセグメントに関連付けるステップとを含む。
【０１００】
例４３は、例３８〜例４２のいずれかに係る主題を含み、ネットワーク状態情報を決定するステップは、ルートセグメントに関連付けられるネットワーク状態情報をクラウドソーシングサーバから受け取るステップを備える。
【０１０１】
例４４は、例３８〜例４３のいずれかに係る主題を含み、ルートを決定するステップは、複数のルートセグメントに関連付けられる道路コスト情報を決定するステップと；ルートセグメントに関連付けられるネットワーク状態情報に基づいて、ルートセグメントに関連付けられる道路コスト情報を調整するステップと；複数のルートセグメントに関連付けられる調整された道路コスト情報に応じて、ルートを決定するステップと；を備える。
【０１０２】
例４５は、例３８〜例４４のいずれかに係る主題を含み、調整された道路コスト情報に応じて、ルートを決定するステップは、調整された道路コスト情報に基づいてダイクストラ最短経路グラフ検索法を実行するステップを備える。
【０１０３】
例４６は、例３８〜例４５のいずれかに係る主題を含み、ルートを決定するステップは、開始位置から行き先位置までの暫定ルートを決定するステップであって、暫定ルートがルートセグメントを含むステップと；ルートセグメントに関連付けられるネットワーク状態情報に基づいて暫定ルートを変えるステップと；を備える。
【０１０４】
例４７は、例３８〜例４６のいずれかに係る主題を含み、暫定ルートを変えるステップは、ルートセグメントに関連付けられるネットワーク状態情報が、基準のネットワーク状態に対して所定の関係を有するかどうかを判断するステップと；ネットワーク状態情報が、基準のネットワーク状態に対して所定の関係を有することに応答して、上記ルートセグメントを回避するように、ルートを再ルーティングするステップと；を備える。
【０１０５】
例４８は、方向ルーティング指示を生成するための方法を含み、当該方法は、クラウドソーシングサーバによって、第１のモバイルコンピューティングデバイスからネットワーク状態情報を受け取るステップであって、ネットワーク状態情報が、開始位置と行き先値との間の１つ以上のルートを定義する複数のルートセグメントのうちのあるルートセグメントに関連付けられるステップと；クラウドソーシングサーバによって、開始位置から行き先位置までのルートを求める要求を、第２のモバイルコンピューティングデバイスから受け取るステップと；クラウドソーシングサーバによって、ネットワーク状態情報に応じて開始位置から行き先位置までのルートを決定するステップと；を備える。
【０１０６】
例４９は、例４８に係る主題を含み、クラウドソーシングサーバによって、第２のモバイルコンピューティングデバイスにルートを伝送するステップを更に含む。
【０１０７】
例５０は、例４８又は例４９に係る主題を含み、ネットワーク状態情報を受け取るステップは、位置に関連付けられるネットワークタイプを受け取るステップを備える。
【０１０８】
例５１は、例４８〜例５０のいずれかに係る主題を含み、ネットワーク状態情報を受け取るステップは、位置に関連付けられるネットワーク信号強度を受け取るステップを備える。
【０１０９】
例５２は、例４８〜例５１のいずれかに係る主題を含み、ルートを決定するステップは、複数のルートセグメントに関連付けられる道路コスト情報を決定するステップと；ルートセグメントに関連付けられるネットワーク状態情報に基づいて、ルートセグメントに関連付けられる道路コスト情報を調整するステップと；複数のルートセグメントに関連付けられる調整された道路コスト情報に応じて、ルートを決定するステップと；を備える。
【０１１０】
例５３は、例４８〜例５２のいずれかに係る主題を含み、調整された道路コスト情報に応じて、ルートを決定するステップは、調整された道路コスト情報に基づいてダイクストラ最短経路グラフ検索法を実行するステップを備える。
【０１１１】
例５４は、例４８〜例５３のいずれかに係る主題を含み、ルートを決定するステップは、開始位置から行き先位置までの暫定ルートを決定するステップであって、暫定ルートがルートセグメントを含むステップと；ルートセグメントに関連付けられるネットワーク状態情報に基づいて暫定ルートを変えるステップと；を備える。
【０１１２】
例５５は、例４８〜例５４のいずれかに係る主題を含み、暫定ルートを変えるステップは、ルートセグメントに関連付けられるネットワーク状態情報が、基準のネットワーク状態に対して所定の関係を有するかどうかを判断するステップと；ネットワーク状態情報が、基準のネットワーク状態に対して所定の関係を有することに応答して、上記ルートセグメントを回避するように、ルートを再ルーティングするステップと；を備える。
【０１１３】
例５６は、例４８〜例５５のいずれかに係る主題を含み、第１のモバイルコンピューティングデバイスは、第２のモバイルコンピューティングデバイスと異なる。
【０１１４】
例５７は、例４８〜例５６のいずれかに係る主題を含み、第１のモバイルコンピューティングデバイスは、第２のモバイルコンピューティングデバイスと同じデバイスである。
【０１１５】
例５８は、ユーザ安全性通知のための方法を含み、当該方法は、モバイルコンピューティングデバイスによって、モバイルコンピューティングデバイスのデバイスコンテキストを決定するステップと；モバイルコンピューティングデバイスによって、デバイスコンテキストに基づいて、評価のために位置を予測するステップと；モバイルコンピューティングデバイスによって、所定の安全性データとデバイスコンテキストに基づいて、予測された位置について安全性レベルを決定するステップと；モバイルコンピューティングデバイスによって、安全性レベルを閾値の安全性レベルと比較するステップと；安全性レベルが、閾値の安全性レベルに対して所定の関係を有するという判断に応答して、安全性レベルをモバイルコンピューティングデバイスのユーザに通知するステップと；を備える。
【０１１６】
例５９は、例５８に係る主題を含み、安全性レベルを決定するステップは、所定の犯罪データに基づいて、決定された位置に関連付けられる予測犯罪レベルを決定するステップを備える。
【０１１７】
例６０は、例５８又は例５９に係る主題を含み、予測犯罪レベルを決定するステップは、地理情報システムサーバから所定の犯罪データを受け取るステップを備える。
【０１１８】
例６１は、例５８〜例６０のいずれかに係る主題を含み、安全性レベルを決定するステップは、決定された位置に関連付けられる、予測される大群衆が集まるイベントを決定するステップを備える。
【０１１９】
例６２は、例５８〜例６１のいずれかに係る主題を含み、予測される大群衆が集まるイベントを決定するステップは、地理情報システムサーバから所定のイベントスケジュールを受け取るステップを備える。
【０１２０】
例６３は、例５８〜例６２のいずれかに係る主題を含み、安全性レベルをユーザに通知するステップは、ワーニング信号を生成するステップを備える。
【０１２１】
例６４は、例５８〜例６３のいずれかに係る主題を含み、ワーニング信号を生成するステップは、可視、可聴又は触覚ワーニングを生成するステップを備える。
【０１２２】
例６５は、例５８〜例６４のいずれかに係る主題を含み、安全性レベルが閾値安全性レベルに対して所定の関係を有する間、モバイルコンピューティングデバイスによってワーニング信号を維持するステップを更に備える。
【０１２３】
例６６は、例５８〜例６５のいずれかに係る主題を含み、安全性レベルをユーザに通知するステップは、提案される代替ルートをユーザに提示するステップを更に備える。
【０１２４】
例６７は、例５８〜例６６のいずれかに係る主題を含み、提案される代替ルートを提示するステップは、視覚的方向インジケータを表示するか、触覚方向インジケータを生成するステップを備える。
【０１２５】
例６８は、例５８〜例６７のいずれかに係る主題を含み、提案される代替ルートを提示するステップは、提案される代替ルートをモバイルコンピューティングの予測ルート上に提示するステップを備える。
【０１２６】
例６９は、例５８〜例６８のいずれかに係る主題を含み、安全性レベルをユーザに通知するステップは、モバイルコンピューティングの予測ルートの地図上に安全性レベルをオーバーレイするステップを備える。
【０１２７】
例７０は、例５８〜例６９のいずれかに係る主題を含み、デバイスコンテキストを決定するステップは、モバイルコンピューティングデバイスの位置を決定するステップ；モバイルコンピューティングデバイスの方向とスピードを決定するステップ；時刻を決定するステップ；モバイルコンピューティングデバイスの計画ルートを決定するステップ；モバイルコンピューティングデバイスの輸送手段を決定するステップ；又はモバイルコンピューティングデバイスに関連付けられる車両範囲を決定するステップを備える。
【０１２８】
例７１は、例５８〜例７０のいずれかに係る主題を含み、計画ルートを決定するステップは、ユーザから要求された行き先を受け取るステップを備える。
【０１２９】
例７２は、例５８〜例７１のいずれかに係る主題を含み、評価のために位置を予測するステップは、モバイルコンピューティングデバイスの現在の位置を決定するステップを備える。
【０１３０】
例７３は、例５８〜例７２のいずれかに係る主題を含み、評価のために位置を予測するステップは、モバイルコンピューティングデバイスの近くの行き先を決定するステップを備える。
【０１３１】
例７４は、例５８〜例７３のいずれかに係る主題を含み、評価のために位置を予測するステップは、モバイルコンピューティングデバイスの予測ルート上の行き先を決定するステップを備える。
【０１３２】
例７５は、プロセッサと、プロセッサによって実行されると、コンピューティングデバイスに、例３８〜例７４のいずれかに係る方法を実行させる複数の命令を格納するメモリとを備える、コンピューティングデバイスを含む。
【０１３３】
例７６は、実行されたことに応答してコンピューティングデバイスに例３８〜例７４のいずれかに係る方法を実行させる、複数の命令を備える１つ以上のマシン読取可能記憶媒体を含む。
【０１３４】
例７７は、例３８〜例７４のいずれかに係る方法を実行するための手段を備えるコンピューティングデバイス。
【図１】
0006321203.tif 000002
【図２】
0006321203.tif 000003
【図３】
0006321203.tif 000004
【図４】
0006321203.tif 000005
【図５】
0006321203.tif 000006
【図６】
0006321203.tif 000007
【図７】
0006321203.tif 000008