(58)【調査した分野】(Int.Cl.,DB名)
前記ネットワーク状態情報を決定するステップは、クラウドソーシングサーバから前記ルートセグメントに関連付けられるネットワーク状態情報を受け取るステップを備える、
請求項7に記載の方法。
【発明を実施するための形態】
【0005】
本開示の概念は、様々な修正及び代替的な形態を許容するが、その特定の実施形態を例として図面に図示しており、本明細書で詳細に説明することにする。しかしながら、本開示の概念を、開示される特定の形態に限定する意図はなく、反対に、本開示及び添付の特許請求の範囲と整合性のある全ての修正、均等物及び代替物を網羅するよう意図されることを理解されたい。
【0006】
本明細書における「一実施形態」、「実施形態」、「例示の実施形態」等への言及は、説明される実施形態が、特定の特徴、構造又は特性を含むことがあるが、全ての実施形態がその特定の特徴、構造又は特性を含んでいてもよく、また必ずしも含んでいなくてもよいことを示す。さらに、そのようなフレーズは必ずしも同じ実施形態を指していない。さらに、特定の特徴、構造又は特性が、ある実施形態との関連で説明されるとき、他の実施形態との関連でそのような特徴、構造又は特性が達成されることは、明示的に説明されるか否かに関わらず、当業者の知識の範囲内で提起される。加えて、「A、B及びCのうちの少なくとも1つ」という形でリスト内に含まれる項目は、(A);(B);(C);(A及びB);(A及びC);(B及びC)又は(A、B及びC)を意味する可能性がある。同様に、「A、B又はCのうちの少なくとも1つ」という形でリストされる項目は、(A);(B);(C);(A及びB);(A及びC);(B及びC)又は(A、B及びC)を意味する可能性がある。
【0007】
開示される実施形態は、一部の場合には、ハードウェア、ファームウェア、ソフトウェア又はその任意の組合せで実装され得る。開示される実施形態は、1つ以上の一時的又は非一時的なマシン読取可能(例えばコンピュータ読取可能)記憶媒体によって担持又は格納される命令として実装されてよく、そのような命令は、1つ以上のプロセッサによって読み取られて実行され得る。マシン読取可能記憶媒体は、任意のストレージデバイス、機構、あるいはマシンにより読取可能な形式で情報を記憶又は伝送する他の物理的機構として具現化され得る(例えば揮発性又は不揮発性メモリ、メディアディスク又は他のメディアデバイス)。
【0008】
図面では、幾つかの構造的又は方法的特徴が、特定の配置及び/又は順序で図示され得る。しかしながら、そのような特定の配置及び/又は順序は必ずしも必要とされない可能性があることを認識されたい。むしろ、一部の実施形態では、そのような特徴は、例示の図面に示されるものと異なる手法及び/又は順序で配置され得る。さらに、特定の図面において構造的又は方法的特徴が含まれることは、そのような特徴が全ての実施形態で必要とされることを示唆するようには意図されておらず、一部の実施形態では含まれなくてもよく、あるいは他の特徴と組み合わされてもよい。
【0009】
ここで、
図1を参照すると、例示の実施形態において、移動中(旅行中(traveling))のユーザに情報を提供するためのシステム100は、1つ以上のモバイルコンピューティングデバイス102、クラウドソーシング(crowdsourcing)サーバ104及び地理情報システム(GIS)サーバ106を含み、これらは全てネットワーク116を介して相互に通信することができる。使用に際して、以下でより詳細に議論されるように、各モバイルコンピューティングデバイス102は、複数の地理的位置に関連付けられるネットワーク状態データ108を決定することができる。各モバイルコンピューティングデバイス102及び/又はクラウドソーシングサーバ104は、地図(map)データ110と組み合わせてネットワーク状態データ108を使用して、2つの地理的位置間のルートをネットワーク状態データ108に応じて決定することができる。したがって、システム100は、最適な又は他の改善されたネットワーク接続を有するルートに沿って、位置間の方向を提供することができる。ルートに沿った改善されたネットワーク接続は、モバイルコンピューティングデバイス102のユーザのために、データ利用を向上させ、あるいは他の方法で旅行経験を改善させることができる。
【0010】
あるいはまた、使用に際して、以下でより詳細に議論されるように、モバイルコンピューティングデバイス102は、当該モバイルコンピューティングデバイス102の現在のコンテキストを決定し、その現在のコンテキストに関連付けされる安全性レベルを決定することができる。安全性レベルは、GISサーバ106から受け取られる犯罪データ112及び/又はイベントスケジュールデータ114に基づいて決定され得る。コンピューティングデバイス102は、例えば安全性レベルが閾値レベル以下に落ちたときアラートをシグナリングすることにより、ユーザに安全性レベルを積極的に警告することができる。システム100は、したがって、安全性を改善し、これにより新しい場所を探索するようユーザを促す。
【0011】
各モバイルコンピューティングデバイス102は、本明細書で説明される機能を実行する能力を有する任意のタイプのモバイルコンピューティングデバイスとして具現化されてよく、これらに限られないが、スマートフォン、携帯電話、ハンドセット、ウェアラブルコンピューティングデバイス、車載インフォテインメントデバイス、コンピュータ、タブレットコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、メッセージングデバイス、ネットワーク機器、ウェブ機器、分散コンピューティングシステム、マルチプロセッサシステム、プロセッサベースのシステム及び/又は家庭用電子機器を含む。
図1に示されるように、例示のモバイルコンピューティングデバイス102は、プロセッサ120、入出力サブシステム122、メモリ124、データストレージデバイス126、通信回路128及び位置回路130を含む。当然、他の実施形態において、各モバイルコンピューティングデバイス102は、デスクトップコンピュータで通常見られるもの(例えば様々な入出力デバイス)のような他の又は追加のコンポーネントを含んでもよい。さらに、一部の実施形態では、例示のコンポーネントのうちの1つ以上を別のコンポーネントに組み込んでよく、あるいは他の方法で別のコンポーネントの一部を形成してもよい。一部の実施形態では、例えばメモリ124又はその一部が、プロセッサ120に組み込まれることがある。
【0012】
プロセッサ120は、本明細書で説明される機能を実行することができる任意のタイプのプロセッサとして具現化され得る。例えばプロセッサ120は、シングルコア若しくはマルチコアプロセッサ、デジタル信号プロセッサ、マイクロコントローラ又は他のプロセッサ若しくは処理/制御回路として具現化され得る。同様に、メモリ124は、本明細書で説明される機能を実行することができる任意のタイプの揮発性若しくは不揮発性のメモリ又はデータストレージとして具現化され得る。動作において、メモリ124は、オペレーティングシステム、アプリケーション、プログラム、ライブラリ及びドライバのように、モバイルコンピューティングデバイス102の動作中に使用される様々なデータ及びソフトウェアを格納することができる。メモリ124は、I/Oサブシステム122を介してプロセッサ120に通信可能に結合されてよく、I/Oサブシステム122は、プロセッサ120、メモリ124及びモバイルコンピューティングデバイス102の他のコンポーネントによる入出力動作を容易にする回路及び/又はコンポーネントとして具現化され得る。例えばI/Oサブシステム122は、メモリコントローラハブ、入出力制御ハブ、ファームウェアデバイス、通信リンク(すなわち、ポイントツーポイントリンク、バスリンク、ワイヤ、ケーブル、光ガイド、プリント回路基板トレース等)及び/又は入出力動作を容易にする他のコンポーネント及びサブシステムとして具現化され得るか、あるいはこれらを含み得る。一部の実施形態において、I/Oサブシステム122は、システムオンチップ(SoC)の一部を形成することがあり、プロセッサ120、メモリ124及びモバイルコンピューティングデバイス102の他のコンポーネントと一緒に単一の集積回路チップ上に統合されてもよい。
【0013】
データストレージデバイス126は、例えばメモリデバイス及び回路、メモリカード、ハードディスクドライブ、半導体ドライブ又は他のデータストレージデバイスのように、データの短期又は長期のストレージのために構成される任意のタイプの1つ又は複数のデバイスとして具現化され得る。データストレージデバイス126は、ネットワーク状態データ108及び/又は地図データ110を永続的に又は一時的に記憶することができる。一部の実施形態において、データストレージデバイス126は、犯罪データ112及び/又はイベントスケジュールデータ114を永続的に又は一時的に記憶することができる。
【0014】
モバイルコンピューティングデバイス102の通信回路128は、モバイルコンピューティングデバイス102、クラウドソーシングサーバ104、GISサーバ106及び/又はネットワーク116上の他のリモートデバイスの間の通信を可能にする能力を有する、任意の通信回路、デバイス又はその集合として具現化され得る。通信回路128は、任意の1つ以上の通信技術(例えば無線又は有線通信)及び関連するプロトコル(例えば3G、LTE、Bluetooth(登録商標)、Wi-Fi(登録商標)、WiMAX等)を使用して、そのような通信を達成するよう構成され得る。
【0015】
モバイルコンピューティングデバイス102の位置回路130は、モバイルコンピューティングデバイス102の正確な位置又は概略位置(approximate position)を決定する能力を有する任意のタイプの回路として具現化され得る。例えば位置回路130は、モバイルコンピューティングデバイス102の正確な座標を決定する能力を有する、全地球測位システム(GPS)受信機として具現化され得る。他の実施形態では、位置回路130は、通信回路128によって与えられる、既知の位置のセルラネットワークタワーまでの距離又は角度を使用して、モバイルコンピューティングデバイス102の位置を三角測量又は三辺測量(trilaterate)してもよい。他の実施形態において、位置回路130は、通信回路128を使用して、既知の位置を有する無線ネットワークに対する関連に基づいて、モバイルコンピューティングデバイス102の概略位置を決定することができる。
【0016】
例示の実施形態において、モバイルコンピューティングデバイス102は、ディスプレイ132、オーディオデバイス134及び触覚デバイス136を更に含む。モバイルコンピューティングデバイス102のディスプレイ132は、液晶ディスプレイ(LCD)、発光ダイオード(LED)、プラズマディスプレイ、陰極線管(CRT)又は他のタイプのディスプレイデバイスのように、デジタル情報を表示する能力を有する任意のタイプのディスプレイとして具現化され得る。一部の実施形態において、ディスプレイ132は、モバイルコンピューティングデバイス102とのユーザ対話を可能にするタッチスクリーンに結合され得る。オーディオデバイス134は、スピーカ、オーディオトランスデューサ、オーディオ出力ジャック、デジタルアナログ変換器(DAC)又は他のタイプのオーディオデバイスのように、出力用にオーディオ信号を生成する能力を有する任意のデバイスとして具現化され得る。触覚デバイス136は、バイブレータ、ブザー、フォースフィードバックデバイス又は任意の他の触覚フィードバックデバイスのように、モバイルコンピューティングデバイス102のユーザに触覚フィードバックを提供する能力を有する任意のデバイスとして具現化され得る。触覚デバイス136は、モバイルコンピューティングデバイス102によって使用され、他の近くの人によって可視又は可聴ではなく、あるいは他の方法で容易に検出可能でない通知を、ユーザに提供することができる。
【0017】
一部の実施形態において、例示のモバイルコンピューティングデバイス102は、ローカルネットワーク状態データ138を含み得る。ローカルネットワーク状態データ138は、モバイルコンピューティングデバイス102によって生成され、クラウドソーシングサーバ104からキャッシュされ、あるいは他の方法でモバイルコンピューティングデバイス102上に永続的又は一時的に格納される、ネットワーク状態データ108の一部又は全てを含み得る。ローカルネットワーク状態データ138は、任意のタイプのデータストレージデバイスとして具現化されてよく、一部の実施形態では、データストレージデバイス126及び/又はメモリ124の一部として格納されてもよい。
【0018】
クラウドソーシングサーバ104は、任意の数のモバイルコンピューティングデバイス102から受け取ったネットワーク状態データ108を管理するよう構成される。クラウドソーシングサーバ104は、本明細書で説明される機能を実行する能力を有する、任意のタイプのサーバコンピューティングデバイス又はデバイスの集合として具現化されてよい。したがって、クラウドソーシングサーバ104は、単一のサーバコンピューティングデバイスとして、あるいはサーバ及び関連するデバイスの集合として具現化され得る。例えば一部の実施形態において、クラウドソーシングサーバ104は、ネットワーク116にまたがって分散され、かつパブリック又はプライベートのクラウド内で動作する、複数のコンピューティングデバイスから形成される「仮想サーバ」として具現化され得る。したがって、クラウドソーシングサーバ104は、単一のサーバコンピューティングデバイスとして具現化されるよう、
図1に図示され、以下で説明されるが、クラウドソーシングサーバ104は、以下で説明される機能を促進するように協働する複数のデバイスとして具現化されてもよいことを認識されたい。例示として、クラウドソーシングサーバ104は、プロセッサ140、I/Oサブシステム142、メモリ144、データストレージデバイス146、通信回路148、並びに/あるいはサーバ又は同様のコンピューティングデバイス内で一般的に見られる他のコンポーネント及びデバイスを含む。クラウドソーシングサーバ104のこれらの個々のコンポーネントは、モバイルコンピューティングデバイス102の対応するコンポーネントと類似することがあり、その説明は、クラウドソーシングサーバ104の対応するコンポーネントに適用可能であるので、本開示を曖昧にしないようにするため、ここでは繰り返し説明しない。
【0019】
地理情報システム(GIS)サーバ106は、地理的位置に関連する情報を格納及び管理するよう構成される。例えばそのような情報の各アイテムをエンコードし、索引付けし、プロットしあるいは他の方法で特定の地理的位置に関連付けることができる。そのような地理情報は、これらには限られないが、地図データ110、犯罪データ112及びイベントスケジュールデータ114を含み得る。GISサーバ106は、本明細書で説明される機能を実行する能力を有する任意のタイプのサーバコンピューティングデバイス及びデバイスの集合として具現化され得る。したがって、(クラウドソーシングサーバ104と同様に)GISサーバ106は、ネットワーク116にまたがって分散され、かつパブリック又はプライベートのクラウド内で動作する、複数のコンピューティングデバイスから形成される「仮想サーバ」として具現化され得る。したがって、GISサーバ106は、プロセッサ、I/Oサブシステム、メモリ、データストレージデバイス、通信回路、並びに/あるいはサーバ又は同様のコンピューティングデバイス内で一般的に見られる他のコンポーネント及びデバイスを含むことができる。GISサーバ106のこれらの個々のコンポーネントは、モバイルコンピューティングデバイス102及び/又はクラウドソーシングサーバ104の対応するコンポーネントと類似することがあり、本開示を曖昧にしないようにするため、図示されていない。一部の実施形態(図示せず)では、クラウドソーシングサーバ104及びGISサーバ106の双方が、同じ物理的なサーバデバイス又はデバイスの集合によって具現化されてもよい。
【0020】
ネットワーク状態データ108、地図データ110、犯罪データ112及びイベントスケジュールデータ114は、任意のネットワークアクセス可能なデータストレージとして具現化されてよく、限定ではないが、データベース、ファイルサーバ、ネットワークアタッチドストレージ又はストレージエリアネットワークを含む。ネットワーク状態データ108は、モバイルコンピューティングデバイス102及びクラウドソーシングサーバ104のいずれか又は双方に対してアクセス可能であるか、これらのいずれか又は双方によって管理され得る。したがって、ネットワーク状態データ108の一部又は全てが、各モバイルコンピューティングデバイス102のローカルネットワーク状態データ138内で、かつ/又はクラウドソーシングサーバ104のデータストレージデバイス146内で格納され得る。地図データ110、犯罪データ112及びイベントスケジュールデータ114は、GISサーバ106に対してアクセス可能にされるか、GISサーバ106によって管理され得る。各モバイルコンピューティングデバイス102及び/又はクラウドソーシングサーバ104は、GISサーバ106を介してそのような地理データにアクセスすることができる。
【0021】
以下でより詳細に議論されるように、モバイルコンピューティングデバイス102、クラウドソーシングサーバ104及びGISサーバ106は、相互に、かつ/又はネットワーク116上の他のリモートデバイスとデータを送受信するように構成され得る。ネットワーク116は、例えば無線セルタワーとして具現化され得る複数のネットワークノード118を含む。ネットワークノード118の各々は、関連する地理的なカバレッジエリア及び信号強度を有することができる。したがって、ネットワーク116を介したモバイルコンピューティングデバイス102からの通信は、モバイルコンピューティングデバイス102の現在の地理的位置又は他の現在のコンテキストに応じて、異なるネットワークノード118に接続し得る。ネットワーク116及び/又はネットワークノード118は、任意の数の様々な有線及び/又は無線ネットワークとして具現化され得る。例えばネットワーク116は、有線又は無線のローカルエリアネットワーク(LAN)、有線又は無線のワイドエリアネットワーク(WAN)、セルラネットワーク及び/又はインターネットのように公にアクセス可能なグローバルネットワークとして具現化され得るか、あるいはこれらを含むことができる。したがって、ネットワーク116は、システム100のデバイスの間の通信を容易にするよう、追加のコンピュータ、ルータ及びスイッチのような任意の数の追加のデバイスを含むことができる。
【0022】
次に
図2を参照すると、図示される実施形態では、モバイルコンピューティングデバイス102は、動作中に環境200を確立する。例示の環境200は、ネットワークモニタリングモジュール202、方向モジュール204、ルート決定モジュール206を含み、一部の実施形態ではネットワーク状態アップロードモジュール208も含む。環境200の様々なモジュールは、ハードウェア、ファームウェア、ソフトウェア及びその組合せとして具現化され得る。
【0023】
ネットワークモニタリングモジュール202は、ネットワーク状態データ108をモニタして記録するように構成される。以下で更に説明されるように、ネットワーク状態データ108は、ネットワークタイプ、信号強度又は特定の位置におけるネットワーク接続に関連する任意の側面を記述することができる。一部の実施形態において、ネットワークモニタリングモジュール202は、ネットワーク状態データ108をモバイルコンピューティングデバイス102上にローカルに格納することができる。あるいはまた、一部の実施形態では、ネットワークモニタリングモジュール202は、ネットワーク状態データ108をネットワーク状態アップロードモジュール208に転送してもよい。
【0024】
ネットワーク状態アップロードモジュール208は、ネットワーク状態データ108をクラウドソーシングサーバ104に伝送するよう構成される。ネットワーク状態データ108は、クラウドソーシングサーバ104により使用可能な任意のフォーマットで伝送され得る。以下で更に説明されるように、クラウドソーシングサーバ104は、複数のモバイルコンピューティングデバイス102によって収集されるネットワーク状態データ108を使用して、ルートを決定することができる。
【0025】
方向モジュール204は、モバイルコンピューティングデバイス102のユーザから、開始位置から行き先位置までの方向を求める要求を受け取り、結果のルートをユーザに提示するよう構成される。例えば方向モジュール204は、ユーザ入力を受け取って、結果を表示する、地図(マッピング:mapping)アプリケーションとして具現化されるか、あるいは他の方法でこれを含むことができる。一部の実施形態において、方向モジュール204は、開始位置と行き先位置を含む方向を求める要求を、クラウドソーシングサーバ104に伝送することができる。
【0026】
ルート決定モジュール206は、開始位置から行き先位置までの最適なルートを、ネットワーク状態データ108及び地図データ110に基づいて決定するよう構成される。以下で更に説明されるように、ルートは、開始位置から行き先位置までのルートに沿って複数の地理的位置を接続する、複数のルートセグメントを含むことができる。各ルートセグメントは、道路、橋又はハイウェイのような物理的接続又は物理的接続の一部に対応し得る。最適なルートは、受け入れ可能なネットワーク状態も有する、開始位置から行き先位置までの最短経路として具現化され得る。以下で更に説明されるように、ルート決定モジュール206は、ネットワーク状態データ108に基づいて道路コスト情報を調整し、次いでグラフ検索アルゴリズムを最短経路の発見に適用することによって、最適なルートを決定することができる。ルート決定モジュール206は、GISサーバ106を介して地図データ110にアクセスすることができ、あるいは、モバイルコンピューティングデバイス102上にローカルに格納される地図データ(図示せず)にアクセスしてもよい。
【0027】
引き続き
図2を参照すると、一部の実施形態において、クラウドソーシングサーバ104は、動作中に環境220を確立することができる。例示の実施形態220は、ネットワークデータ管理モジュール222及びルート決定モジュール206を含む。環境220の様々なモジュールが、ハードウェア、ファームウェア、ソフトウェア又はその組合せとして具現化され得る。
【0028】
ネットワークデータ管理モジュール222は、1つ以上のモバイルコンピューティングデバイス102からネットワーク状態データ108を受け取って格納するように構成される。ネットワーク状態データ108は、クラウドソーシングサーバ104に対してアクセス可能なネットワークストレージ内に格納されるか、あるいはクラウドソーシングサーバ104によってローカルに格納されてもよい。
【0029】
環境220のルート決定モジュール206は、環境200のルート決定モジュール206と同様に構成される。特に、ルート決定モジュール206は、開始位置から行き先位置までの最適なルートを、ネットワーク状態データ108及び地図データ110に基づいて決定するよう構成される。開始位置及び行き先位置は、モバイルコンピューティングデバイス102のうちの1つから受け取られる、ルートの要求に含まれることがある。したがって、ルート決定モジュール206は、2つ以上のモバイルコンピューティングデバイス102に由来するネットワーク状態データ108と地図データ110とに基づいて、最適なルートを決定することができる。特に、ネットワーク状態データ108は、方向を現在要求しているモバイルコンピューティングデバイス102とは異なるモバイルコンピューティングデバイス102によって生成されたものであってよい。
【0030】
次に
図3を参照すると、使用に際して、モバイルコンピューティングデバイス102は、ネットワーク状態データ108を収集するための方法300を実行することができる。方法300はブロック302で始まり、ブロック302において、モバイルコンピューティングデバイス102は、ネットワーク状態データ108を収集するかどうかを判断する。例えばモバイルコンピューティングデバイス102は、ユーザコマンドに応答してネットワーク状態データ108を収集することができる。別の例として、モバイルコンピューティングデバイス102は、ネットワーク状態データ108を、構成設定に基づいて自動的に、かつ/又はバックグラウンドで収集することができる。ネットワーク状態データ108を収集しない場合、方法300はブロック302にループバックして、ネットワーク状態データ108を収集するかどうかの判断を続ける。ネットワーク状態データ108を収集する場合、方法300はブロック304に進む。
【0031】
ブロック304において、モバイルコンピューティングデバイス102は、当該モバイルコンピューティングデバイス102の位置を決定する。モバイルコンピューティングデバイス102は、位置回路130から受け取ったデータに基づいて、位置を決定することができる。モバイルコンピューティングデバイス102は、絶対位置、例えばGPS座標を決定することができ、あるいは道路又は他の経路のような1つ以上のルートセグメントに関連付けられる位置を決定してもよい。
【0032】
ブロック306において、モバイルコンピューティングデバイス102は、現在の位置に関連付けられるネットワーク状態情報を決定する。ネットワーク状態情報は、現在の位置におけるネットワーク接続の品質及び可用性を記述する任意の情報、これらの品質及び可用性に基づく任意の情報、あるいはこれらの品質及び可用性に関連する任意の情報を含む。モバイルコンピューティングデバイス102は、通信回路128によって受け取った情報を分析することにより、ネットワーク状態情報を決定することができる。あるいはまた、一部の実施形態において、モバイルコンピューティングデバイス102は、道路又はハイウェイのようなルートセグメントに沿った幾つかの位置について受け取ったデータを平均し、そのセグメントについての平均状態データを生成することによって、ネットワーク状態情報を決定することができる。一部の実施形態では、ブロック308において、モバイルコンピューティングデバイス102は、現在の位置で利用可能なネットワークタイプを決定することができる。ネットワークタイプは、無線ネットワーク技術及び/又はプロトコル(例えばCDMA、GSM(登録商標)、LTE、Wi-Fi)、ネットワークスピード(例えば3G、4G)、周波数帯域又は任意の他のネットワーク分類を含み得る。一部の実施形態では、ブロック310において、モバイルコンピューティングデバイス102は、現在の位置における信号強度を決定することができる。モバイルコンピューティングデバイス102は、通信回路128によって受け取った情報を使用して信号強度を決定することができる。
【0033】
ブロック312において、モバイルコンピューティングデバイス102は、ネットワーク状態情報及び関連するデバイス位置を(例えば相互に関連付けて)ネットワーク状態データ108に格納することができる。一部の実施形態では、ブロック314において、モバイルコンピューティングデバイス102は、ネットワーク状態データ108をローカルに、例えばモバイルコンピューティングデバイス102のデータストレージデバイス126に格納することができる。あるいはまた、一部の実施形態では、ブロック316において、モバイルコンピューティングデバイス102は、ネットワーク状態データ108を、格納のためにクラウドソーシングサーバ104に伝送することができる。以下で更に説明されるように、クラウドソーシングサーバ104は、多くのモバイルコンピューティングデバイス102から受け取ったネットワーク状態データ108を使用して、位置間のルートをマップすることができる。多くのモバイルコンピューティングデバイス102からネットワーク状態データを収集することは、クラウドソーシングサーバ104が、決定されるルートに沿って進んだことのないユーザのために、例えばネットワーク状態情報に基づいてルートを決定することを可能にする。ネットワーク状態データ108を格納した後、方法300はブロック302にループバックして、ネットワーク状態データ108の収集を続ける。
【0034】
次に
図4を参照すると、使用に際して、モバイルコンピューティングデバイス102及び/又はクラウドソーシングサーバ104は、ネットワーク状態データ108に基づいてルートを決定するための方法400を実行することができる。以下で説明されるように、方法400は、モバイルコンピューティングデバイス102上でローカルに実行されてよく、モバイルコンピューティングデバイス102からの要求に応答してクラウドソーシングサーバ104上でリモートに実行されてもよい。あるいはまた、方法400の一部が、任意の組合せでモバイルコンピューティングデバイス102及び/又はクラウドソーシングサーバ104によって実行されてもよいことを理解されたい。方法400はブロック402で始まり、ブロック402において、モバイルコンピューティングデバイス102及び/又はクラウドソーシングサーバ104が、新たなルートを探すかどうかを判断する。新たなルートを探すことは、例えばモバイルコンピューティングデバイス102のアプリケーションの開始、あるいはクラウドソーシングサーバ104へのネットワーク要求の開始のように、モバイルコンピューティングデバイス102のユーザからのコマンドに応答して開始されてよい。新たなルートを決めない場合、方法400はブロック402にループバックして、引き続き、新たなルートを発見するコマンドを待つ。新たなルートを決める場合、方法400はブロック404に進む。
【0035】
ブロック404において、モバイルコンピューティングデバイス102及び/又はクラウドソーシングサーバ104は、要求ルートの開始位置及び行き先位置を受け取るか、あるいは他の方法で決定する。開始位置及び行き先位置は、例えば通りの住所、地理的座標、関心点、場所の名前又は他の位置識別子のような任意の適切なフォーマットで指定され得る。一部の実施形態では、ブロック406において、モバイルコンピューティングデバイス102は、ユーザ入力から、例えばナビゲーションアプリケーションへのタッチスクリーン入力から、開始位置及び/又は行き先位置を受け取ることができる。あるいはまた、一部の実施形態では、ブロック408において、クラウドソーシングサーバ104は、開始位置及び行き先位置を、モバイルコンピューティングデバイス102から、ネットワーク116上で受け取られる要求の一部として受け取ることができる。一部の実施形態では、ブロック410において、モバイルコンピューティングデバイス102及び/又はクラウドソーシングサーバ104は、開始位置又は行き先位置を推論することができる。例えば開始位置は、位置回路130を使用して決定されるように、モバイルコンピューティングデバイス102の現在の位置となるように推論され得る。
【0036】
ブロック412において、モバイルコンピューティングデバイス102及び/又はクラウドソーシングサーバ104は、道路コスト情報を決定することができる。道路コスト情報は、2つの地理的位置の間を移動する相対的コストの任意の指標として具現化され得る。道路コスト情報は、ローカルに格納されるかネットワーク116を介してアクセス可能な地図データ110からロードされ得る。一部の実施形態において、道路コスト情報は、地理的位置を表すノードと、地理的位置の間のルートセグメントに関連付けられる道路コストを表すエッジとを有する、グラフデータ構造として具現化され得る。例えば
図5を参照すると、
図500は、そのようなグラフ構造を示している。ノード502からノード508は、地理的位置を表し、ノード間のエッジは、ノードを接続しているルートセグメントを表す。エッジは、無次元の整数として示される道路コスト情報でラベル付けされる。
図4に戻ると、一部の実施形態では、ブロック414において、モバイルコンピューティングデバイス102及び/又はクラウドソーシングサーバ104は、位置間の距離情報に基づいて道路コストを決定することができる。一部の実施形態では、ブロック416において、モバイルコンピューティングデバイス102及び/又はクラウドソーシングサーバ104は、位置間の移動時間に基づいて道路コストを決定することができる。あるいはまた、一部の実施形態では、ブロック418において、モバイルコンピューティングデバイス102及び/又はクラウドソーシングサーバ104は、トラフィック情報に基づいて道路コストを決定することができる。当然、他の実施形態では、道路コスト情報は、2地点間のルートセグメントに沿った地理的ルーティングに関連する任意の他のデータ又はデータの組合せに基づくものであってよい。例えば一部の実施形態では、道路コストデータは、距離、時間及び/又はトラフィック情報の集約であってよく、ユーザの望み又は目的(例えば最短ルート、最速ルート等)に対して調整可能であり、あるいはこれらに依存し得る。
【0037】
ブロック420において、モバイルコンピューティングデバイス102及び/又はクラウドソーシングサーバ104は、ルートを生成する際にネットワーク状態を考慮するかどうかを判断する。ネットワーク状態は、例えばユーザ要求又はデバイスプリファレンスに基づいて考慮され得る。一部の実施形態では、関連するルートについて十分なネットワーク状態データ108が存在する場合、ネットワーク状態を考慮することができる。ネットワーク状態を考慮しない場合、方法400は、以下で説明されるブロック424までスキップして進む。ネットワーク状態を考慮する場合、方法400はブロック422に進む。
【0038】
ブロック422において、モバイルコンピューティングデバイス102及び/又はクラウドソーシングサーバ104は、ネットワーク状態データ108に基づいて道路コスト情報を調整する。道路コスト情報は、ルーティングプロセスにネットワーク状態を考慮させるよう、任意の方法で調整され得る。例えば一部の実施形態では、プアな(poor)ネットワーク状態(例えば劣性のネットワークタイプ、弱い信号強度、むらのあるカバレッジ等)を有する地理的位置の間のルートセグメントについて、道路コストが増加することがある。上述のように、道路コスト情報は、任意のモバイルコンピューティングデバイス102によって生成されるネットワーク状態データ108に基づいて調整され得る;言い換えると、クラウドソーシングサーバ104は、幾つかのモバイルコンピューティングデバイス102に由来するネットワーク状態データ108を使用して、道路コスト情報を調整することができる。さらに、方法400の実行中に起こるように図示されているが、道路コスト情報を任意の時間に調整することができる。例えば道路コスト情報は、モバイルコンピューティングデバイス102によって生成されるとき、かつ/又はクラウドソーシングサーバ104によって受け取られるときに、後の使用のために調整されてキャッシュされてもよい。再び
図5を参照して、道路コスト情報が、
図500内で示されるグラフデータ構造のエッジとして具現化されることを考える。この例では、プアなネットワーク状態のルートセグメントに対応するエッジについて、道路コストの値は増加し得る。例えばノード502、506の間のエッジの道路コスト値は、プアなネットワーク状態に基づいて、10から16まで増加し得る。反対に、ノード502、504の間のエッジの道路コスト値は、受容可能なネットワーク状態に基づいて変化しないままであり得る。道路コストに対する増加又は調整の具体的な量は、例えば基本となる道路コストの割合又はその関数として、あるいは他の基準として、低品質ネットワーク状態の程度に基づくものであってよい。加えて、一部の実施形態において、特定のセグメントについての道路コストは、高品質ネットワーク状態に基づいて減少することもある。
【0039】
図4に戻ると、ブロック424において、モバイルコンピューティングデバイス102及び/又はクラウドソーシングサーバ104は、開始位置から行き先位置までの最適なルートを、道路コスト情報に基づいて決定することができる。したがって、プロセスがネットワーク状態を考慮するとき、最適なルートは、ネットワーク状態を反映するように調整された道路コスト情報に基づいて決定され得る。最適なルートを見つけるために任意の適切なアルゴリズムが使用され得る。例えば一部の実施形態では、ダイクストラ法(Dijkstra's algorithm)のように、最短経路のグラフ検索アルゴリズムが使用され得る。あるいはまた、一部の実施形態において、モバイルコンピューティングデバイス102及び/又はクラウドソーシングサーバ104は、ネットワーク状態を考慮する(例えば距離、移動時間、交通渋滞等を考慮する)ことなく最適なルートを生成し、そのルートを、ネットワーク状態に基づいて(例えばプアなネットワーク状態を有するルートセグメントを避けるよう再ルーティングすることによって)調整することができる。
【0040】
再び
図5を参照して、ノード502とノード508との間の最適なルートを見つけるためのダイクストラ法の例示の適用を考える。バックグラウンドとして、ダイクストラ法を実行するために、ノードの全てが最初に未訪問としてマークされ、現在のノードが最初に選択される。現在のノードについて、全ての近傍ノードまでの暫定距離(tentative distance)が、各対応するエッジの道路コスト値に基づいて計算される。各近傍ノードについて、暫定距離が、以前に計算された暫定距離未満である場合、その暫定距離を記録する。全ての近傍ノードについて暫定距離を計算した後、現在のノードは訪問済みとしてマークされる。最も少ない暫定距離を有する未訪問のノードが次の現在のノードとして選択され、アルゴリズムは、現在のノードが行き先ノードとなるまで繰り替えされる。完了後、最も小さな計算距離を有するノードに続いて、行き先ノードから開始ノードまでグラフ中をバックドラックすることによって、最適なルートを発見することができる。
【0041】
アルゴリズムの適用を説明すると、各ルートセグメントに沿ってネットワーク状態を考慮することなく、初めにノード502からノード508までのルートを見つけることを考える。現在のノードは、ノード502で始まり、ノード504が距離7を有するものとして暫定的にマークされ、ノード506は距離10を有するものとして暫定的にマークされる。ノード502が訪問済みとしてマークされると、現在のノードはノード504になる。ノード504からノード506までの暫定距離は7+9=16であり、以前に計算された距離10よりも大きいので無視される。ノード508までの暫定距離は21としてマークされる。ノード504が訪問済みとしてマークされて、現在のノードはノード506になる。ノード508までの暫定距離は12としてマークされ、以前に計算された暫定距離を置換する。ノード506が訪問済みとしてマークされ、現在のノードはノード508になる。現在のノードは行き先ノードであるので、アルゴリズムは完了する。この説明的な実例では、ネットワーク状態を考慮しない最短距離は、ノード502からノード506を通ってノード508までであり、距離12を有する。
【0042】
次に、ネットワーク状態を考慮してノード502からノード508までのルートを見つけることを考える。図示される例では、ノード502からノード506までのルートセグメントと、ノード506からノード508までのルートセグメントが、プアなネットワーク状態を有する。したがって、これらのルートセグメントについての道路コストは、それぞれ10から16まで、2から6まで上昇する。アルゴリズムを適用すると、現在のノードはノード502で始まり、ノード504は距離7を有するものとして暫定的にマークされ、ノード506は距離16を有するものとして暫定的にマークされる。ノード502が訪問済みとマークされて、現在のノードはノード504になる。ノード504からノード506までの暫定距離は、7+9=16であり、以前に計算された距離16と同じであるので無視され得る。ノード508までの暫定距離は21としてマークされる。ノード504が訪問済みとマークされて、現在のノードはノード506になる。ノード508までの暫定距離は、16+6=22であり、以前に計算された距離21よりも大きいので無視される。ノード506が訪問済みとしてマークされて、現在のノードはノード508になる。現在のノードは行き先ノードであるので、アルゴリズムは完了する。この図示される例では、ネットワーク状態を考慮した最短経路は、ノード502からノード504を通ってノード508までであり、距離21を有する。したがって、この例では、プアなネットワーク状態を有するルートセグメント(ノード502からノード506までのセグメントと、ノード506からノード508までのセグメント)が回避される。
【0043】
図4に戻ると、最適なルートを決定した後、ブロック426において、モバイルコンピューティングデバイス102及び/又はクラウドソーシングサーバ104は、ユーザにルートを提示する。一部の実施形態では、ブロック428において、モバイルコンピューティングデバイス102は、ルートをユーザインタフェースに出力することができる。モバイルコンピューティングデバイス102は、任意のユーザインタフェースモードを使用してよく、例えばディスプレイ132を使用してグラフィカルな地図を表示し、あるいはオーディオデバイス134を使用して可聴な指示(direction)を出力することができる。あるいはまた、一部の実施形態では、ブロック430において、クラウドソーシングサーバ104は、最適なルートをモバイルコンピューティングデバイス102に伝送することができる。クラウドソーシングサーバ104は、モバイルコンピューティングデバイス102によって使用可能な任意のフォーマットでルートを転送することができる。例えば一部の実施形態において、クラウドソーシングサーバ104は、最適なルートを説明するフォーマット済みのハイパーテキスト及び/又はデータを伝送することができる。あるいはまた、クラウドソーシングサーバ104は、ユーザへの提示のためにモバイルコンピューティングデバイス102によって解析、レンダリング及び/又は他の方法で処理される、最適なルートを説明するデータを伝送してもよい。最適なルートをユーザに提示した後、方法400はブロック402にループバックして、ルートについての別の要求を提供する。
【0044】
図6を参照すると、一部の実施形態では、モバイルコンピューティングデバイス102は、代替又は追加として、動作中に環境600を確立することができる。例示の環境600は、コンテキスト決定モジュール602、位置予測モジュール604、安全性決定モジュール606及びユーザ通知モジュール608を含む。環境600の様々なモジュールは、ハードウェア、ファームウェア、ソフトウェア又はその組合せとして具現化され得る。
【0045】
コンテキスト決定モジュール602は、モバイルコンピューティングデバイス102のコンテキストを決定するよう構成される。デバイスコンテキストは、モバイルコンピューティングデバイス102の現在の位置、現在の状態又は現在の利用に関する情報の任意の組合せを含み得る。例えばデバイスコンテキストは、モバイルコンピューティングデバイス102の現在の位置、方向及びスピード、現在の時刻、ユーザの計画したルート、ユーザの現在の輸送手段(mode of transportation)、ユーザの現在の車両の特性又はこれらのデータの任意の組合せを含み得る。
【0046】
位置予測モジュール604は、モバイルコンピューティングデバイス102の将来の位置を、現在のデバイスコンテキストに基づいて予測するよう構成される。位置は、モバイルコンピューティングデバイス102の現在の位置及び動きに基づいて、モバイルコンピューティングデバイス102の計画ルートに基づいて、モバイルコンピューティングデバイス102の将来の位置に関連する任意の他のコンテキストデータに基づいて予測され得る。予測された位置は、安全性決定モジュール606により安全性について評価される。
【0047】
安全性決定モジュール606は、デバイスコンテキストに基づいて、予測された位置について安全性レベルを決定するよう構成される。安全性決定モジュール606はまた、決定した安全性レベルを閾値の安全性レベルと比較して、予測された位置の相対的な安全性を決定するようにも構成される。安全性レベルは、予測された安全性データ610、例えば犯罪データ112及び/又はイベントスケジュールデータ114に基づいて決定され得る。以下で更に説明されるように、犯罪データ112及びイベントスケジュールデータ114は、予測された位置に一般的に関連付けられる安全性レベルを決定するために使用されてよく、あるいはデバイスコンテキストに特有の安全性レベルを決定するために使用されてもよい。例えば犯罪データ112は、異なる時刻における犯罪率を示すデータを含むことがあり、安全性決定モジュール606は現在の時刻に基づいて安全性レベルを決定することができる。
【0048】
ユーザ通知モジュール608は、予測された位置が相対的に安全でないときにユーザに通知するよう構成される。ユーザ通知モジュール608は、安全性レベルが閾値安全性レベルに対して所定の関係を有するとき、例えば安全性レベルが閾値より下にあるとき、ユーザに通知することができる。ユーザ通知モジュール608は、グラフィカルディスプレイ、可聴出力又は触覚フィードバック等のような任意の利用可能なユーザ対話モダリティを使用して、ユーザに通知することができる。
【0049】
次に
図7を参照すると、使用に際して、モバイルコンピューティングデバイス102は、安全でない位置をユーザに通知するための方法700を実行することができる。方法700はブロック702で始まり、ブロック702において、モバイルコンピューティングデバイス102は、当該モバイルコンピューティングデバイス102のコンテキストを決定する。デバイスコンテキストには、モバイルコンピューティングデバイス102の現在の位置、現在の状態又は現在の利用に関する任意の情報が含まれ得る。例えば一部の実施形態では、ブロック704において、モバイルコンピューティングデバイス102は、当該モバイルコンピューティングデバイス102の現在の位置を決定することができる。モバイルコンピューティングデバイス102は、位置回路130を使用して、その決定を行うことができる。一部の実施形態では、ブロック706において、モバイルコンピューティングデバイス102は、当該モバイルコンピューティングデバイス102の方向及び/又はスピードを決定することができる。方向及び/又はスピードデータは、位置回路130を使用して決定される位置データに基づいて、決定され得る。あるいはまた、方向及び/又はスピードデータを、モバイルコンピューティングデバイス102に結合される車両から受け取ることもできる。一部の実施形態では、ブロック708において、モバイルコンピューティングデバイス102は、モバイルコンピューティングデバイス102に関連付けられるローカルの時刻を決定することができる。
【0050】
一部の実施形態では、ブロック710において、モバイルコンピューティングデバイス102は、計画ルートを決定することができる。例えばモバイルコンピューティングデバイス102は、例えば地図アプリケーションにおいて、ユーザから受け取った入力に基づいて、計画ルートを決定することができる。一部の実施形態では、モバイルコンピューティングデバイス102は、ルートの一部又は全てを推論することができ、例えば現在の位置から既知の行き先までのルートを決定することができる。加えて、一部の実施形態では、ブロック712において、モバイルコンピューティングデバイス102は、モバイルコンピューティングデバイス102に関連付けられる輸送手段(例えば徒歩、運転、公共交通手段等)を決定することができる。移動手段の決定は、位置回路130を使用して決定される位置又は移動データに基づくものであってよい。一部の実施形態では、ブロック714において、モバイルコンピューティングデバイス102は、モバイルコンピューティングデバイス102に関連付けられる車両((乗り物)(vehicle))の現在の範囲を決定することができる。例えばモバイルコンピューティングデバイス102は、その車両と通信して、その車両が移動することができる距離を決定するのに使用され得る利用可能な燃料及び運転状態を参照することができる。
【0051】
ブロック716において、モバイルコンピューティングデバイス102は、デバイスコンテキストに基づいて、評価用の位置を予測する。予測される位置は、モバイルコンピューティングデバイス102、したがってユーザが、将来訪問しそうな位置である。評価のために予測される将来の位置を使用することによって、モバイルコンピューティングデバイス102は、以下で議論されるようにユーザが予測位置に入るか到着する前に、潜在的な安全でない状態をユーザに警告することが可能である。一部の実施形態では、ブロック718において、モバイルコンピューティングデバイス102は、近くの行き先(nearby destination)を決定することができる。例えば現在の位置、方向及びスピードが与えられると、モバイルコンピューティングデバイス102は、現在の移動方向で現在の位置に隣接する位置を予測することができる。予測位置までの距離は、例えばスピード又は移動手段に依存し得る。例えば徒歩のときは、予測位置は次のブロックであり、運転のときは、予測位置は次の地区(next neighborhood)又は幹線道路であり得る。一部の実施形態では、ブロック720において、モバイルコンピューティングデバイス102は、予測ルート上の行き先を決定することができる。予測位置は、モバイルコンピューティングデバイス102の現在の位置に直接隣接しない予測ルートの一部の上であってよい。
【0052】
ブロック722において、モバイルコンピューティングデバイス102は、デバイスコンテキストに基づいて、予測位置について安全性レベルを決定する。安全性レベルは、予測位置における犯罪の可能性に関連付けられる任意の定量可能な値として具現化され得る。例えば安全性レベルは犯罪データ112に基づくことができる。犯罪データ112は、特定の地理的位置についての犯罪の発生に関する任意のデータを含んでよく、例えば報告された犯罪の数、期間当たりの犯罪率、人口当たりの犯罪率、特定の地理的エリアにおける犯罪の可能性、特定の時刻における犯罪の可能性等である。犯罪データ112は全ての犯罪について集約されてよく、あるいは犯罪のサブセットについてのデータ(例えば暴力犯罪、窃盗犯罪)を含んでもよい。あるいはまた、安全性レベルは、イベントスケジュールデータ114に基づくことができる。モバイルコンピューティングデバイス102は、いずれかの大群衆が集まるイベント(mass crowd event)が、予測位置及びデバイスコンテキスト(例えば日時)についてスケジュールされているかどうかを判断することができる。大群衆が集まるイベントには、スポーツイベント、フェスティバル、抗議行動及び多くの人々を集中した地理的エリアに引き寄せる可能性が高い他のイベントが含まれ得る。大群衆が集まるイベントの存在により、モバイルコンピューティングデバイス102は、より低い安全性レベルを決定することになる。犯罪データ112及び/又はイベントスケジュールデータ114のような所定の安全性データに基づいて安全性レベルを決定することに加えて、モバイルコンピューティングデバイス102は、現在のデバイスコンテキストに基づいて安全性レベルを決定することもある。例えば特定の位置について、決定された安全性レベルは、同じ位置について日中よりも夜の方が低いことがある。一部の実施形態では、ブロック724において、モバイルコンピューティングデバイス102は、犯罪データ112及び/又はイベントスケジュールデータ114をGISサーバ106から取り出すことができる。
【0053】
ブロック726において、モバイルコンピューティングデバイス102は、決定された安全性レベルを、閾値の安全性レベルと比較して、予測位置の安全性を判断する。一部の実施形態において、その比較はバイナリであってよく、その結果は、予測位置が安全であるか、安全でないかの判断である。一部の実施形態において、比較は、完全に安全であるレベルから安全に安全でないレベルまでの一連の相対的な安全性レベルを判断することができる。ブロック728において、モバイルコンピューティングデバイス102は、予測される位置が安全でないかどうかを判断する。予測位置が安全(又は完全に安全)である場合、方法700はブロック702にループバックして、デバイスコンテキストのモニタリングを続ける。予測位置が安全でない(又は完全に安全でない)場合、方法700はブロック730に進む。
【0054】
ブロック730において、モバイルコンピューティングデバイス102は、安全性レベルをユーザに通知する。モバイルコンピューティングデバイス102は、任意の利用可能なユーザ対話モードを使用してユーザに通知することができる。一部の実施形態では、ブロック732において、モバイルコンピューティングデバイス102は、ユーザのために視覚的、可聴又は触覚ワーニングを生成することができる。ワーニングは、その性質上進行性であり得る;すなわち、ワーニングは、予測位置の安全性レベルが下がると、振幅及び/又は緊急性が上がることがある。モバイルコンピューティングデバイス102が安全でない位置に留まっている間、ワーニングを表示し続けるか、他の方法で維持し続けることができることを理解されたい。一部の実施形態において、ワーニングは、近くの人には警告又は邪魔しないようなやり方で生成され得る。例えばモバイルコンピューティングデバイス102は、危険なエリアに入ろうとするときに、触覚デバイス136をアクティブにしてユーザに通知することができる。モバイルコンピューティングデバイス102は、当該モバイルコンピューティングデバイス102が生成する他の通知とは別個に触覚信号(例えば振動パターン)を生成することができ、モバイルコンピューティングデバイス102を視覚的に参照する必要なく、ユーザが潜在的な危険性に気付くことを可能にする。別の例として、モバイルコンピューティングデバイス102は、ユーザに通知するために、ディスプレイ132上にアイコン又はワーニングラベル等のような視覚的インジケータを生成することができる。例えばモバイルコンピューティングデバイス102が、スマートめがねのようなウェアラブルコンピューティングデバイスとして具現化されるとき、視覚的インジケータを、モバイルコンピューティングデバイス102のユーザのみに対して可視になるよう配置されるヘッドアップディスプレイ132上に表示することができる。
【0055】
一部の実施形態では、ブロック734において、モバイルコンピューティングデバイス102は、ユーザに対して代替ルートを提案することができる。代替ルートは、予測位置よりも安全性レベルがより高い代替方向、ルート又は行き先とすることができる。例えば再びヘッドアップディスプレイを有するウェアラブルコンピューティングデバイスを考えると、モバイルコンピューティングデバイス102は、単に、ユーザを相対的に安全な方向に導く矢印又は他の視覚的インジケータを表示することができる。別の例として、モバイルコンピューティングデバイス102は、ユーザを相対的に安全な方向に導く知覚信号を生成してもよい。例えばモバイルコンピューティングデバイス102は、安全でない予測位置に向かってポイントされたユーザのサイド上に振動をもたらし、ユーザがその方向に向かうべきでないことを示すことができる。別の例として、モバイルコンピューティングデバイス102は、ルートに沿って代替ルート及び/又は代替位置を生成することができる。例えば車で移動しているとき、モバイルコンピューティングデバイス102は、計画ルート沿いの特定の位置(例えばガソリンスタンド、休憩エリア等)が安全でないと判断し、代替位置(例えばより安全な位置にある代替ガソリンスタンド)を提案することができる。当然、モバイルコンピューティングデバイス102は、代替ルートを決定する際に、車両範囲(vehicle range)のようなデバイスコンテキストを考慮することができる。
【0056】
一部の実施形態では、ブロック736において、モバイルコンピューティングデバイス102は、地図上に安全性レベルのオーバーレイを提示することができる。安全性レベル情報の提示は、ユーザが代替ルートを決定すること、あるいは他の方法で安全性を評価することを可能にする。例えばモバイルコンピューティングデバイス102は、計画ルートに沿った地点についての安全性レベルをカラーコード化するか、他の方法で指示することができる。地図上の安全性レベルの提示は、スマートフォンや車載インフォテインメントデバイスのようなモバイルコンピューティングデバイス102の更に能力のある実施形態に適していることがある。安全性レベルをユーザに通知した後、方法700はブロック702にループバックして、デバイスコンテキストのモニタリングを続ける。
【0057】
例
本明細書で開示される技術の説明的な例を以下で与える。これらの技術の実施形態は、以下で説明される例の任意の1つ以上及び任意の組合せを含み得る。
【0058】
例1は、方向ルーティング指示を生成するためのモバイルコンピューティングデバイスを含み、当該モバイルコンピューティングデバイスは、開始位置と行き先位置との間の1つ以上のルートを定義する複数のルートセグメントのうちのあるルートセグメントに関連付けられるネットワーク状態情報を決定し、ネットワーク状態情報を格納する、ネットワークモニタリングモジュールと;ネットワーク状態情報に応じて開始位置から行き先位置までのルートを決定する、ルート決定モジュールと;を備える。
【0059】
例2は、例1に係る主題を含み、ネットワーク状態情報が、ルートセグメントに関連付けられるネットワークタイプを備える。
【0060】
例3は、例1又は例2に係る主題を含み、ネットワーク状態情報が、ルートセグメントに関連付けられるネットワーク信号強度を備える。
【0061】
例4は、例1〜例3のいずれかに係る主題を含み、ネットワーク状態情報を決定することは、モバイルコンピューティングデバイスの現在の位置を決定することと;モバイルコンピューティングデバイスの現在の位置に関連付けられるネットワーク状態情報を決定することと;ネットワーク状態情報を、複数のルートセグメントのうち現在の位置に関連付けられるルートセグメントに関連付けることと;を備える。
【0062】
例5は、例1〜例4のいずれかに係る主題を含み、ネットワーク状態情報を決定することは、ルートセグメントに関連付けられるモバイルコンピューティングデバイスの複数の位置を決定することと;複数の位置について平均ネットワーク状態情報を決定することと;平均ネットワーク状態情報をルートセグメントに関連付けることとを含む。
【0063】
例6は、例1〜例5のいずれかに係る主題を含み、ネットワーク状態情報を決定することは、ルートセグメントに関連付けられるネットワーク状態情報をクラウドソーシングサーバから受け取ることを備える。
【0064】
例7は、例1〜例6のいずれかに係る主題を含み、ルートを決定することは、複数のルートセグメントに関連付けられる道路コスト情報を決定することと;ルートセグメントに関連付けられるネットワーク状態情報に基づいて、ルートセグメントに関連付けられる道路コスト情報を調整することと;複数のルートセグメントに関連付けられる調整された道路コスト情報に応じて、ルートを決定することと;を備える。
【0065】
例8は、例1〜例7のいずれかに係る主題を含み、調整された道路コスト情報に応じて、ルートを決定することは、調整された道路コスト情報に基づいてダイクストラ最短経路グラフ検索法を実行することを備える。
【0066】
例9は、例1〜例8のいずれかに係る主題を含み、ルートを決定することは、開始位置から行き先位置までの暫定ルートを決定することであって、暫定ルートがルートセグメントを含むことと;ルートセグメントに関連付けられるネットワーク状態情報に基づいて暫定ルートを変えることと;を備える。
【0067】
例10は、例1〜例9のいずれかに係る主題を含み、暫定ルートを変えることは、ルートセグメントに関連付けられるネットワーク状態情報が、基準のネットワーク状態に対して所定の関係を有するかどうかを判断することと;ネットワーク状態情報が、基準のネットワーク状態に対して所定の関係を有することに応答して、上記ルートセグメントを回避するように、ルートを再ルーティングすることと;を備える。
【0068】
例11は、方向ルーティング指示を生成するためのクラウドソーシングサーバを含み、当該クラウドソーシングサーバは:第1のモバイルコンピューティングデバイスからネットワーク状態情報を受け取るネットワークデータ管理モジュールであって、ネットワーク状態情報が、開始位置と行き先値との間の1つ以上のルートを定義する複数のルートセグメントのうちのあるルートセグメントに関連付けられる、ネットワークデータ管理モジュールと;(i)開始位置から行き先位置までのルートを求める要求を第2のモバイルコンピューティングデバイスから受け取り、(ii)ネットワーク状態情報に応じて開始位置から行き先位置までのルートを決定する、ルート決定モジュールと;を備える。
【0069】
例12は、例11に係る主題を含み、ルート決定モジュールは更に、第2のモバイルコンピューティングデバイスにルートを伝送する。
【0070】
例13は、例11又は例12に係る主題を含み、ネットワーク状態情報が、位置に関連付けられるネットワークタイプを備える。
【0071】
例14は、例11〜例13のいずれかに係る主題を含み、ネットワーク状態情報が、位置に関連付けられるネットワーク信号強度を備える。
【0072】
例15は、例11〜例14のいずれかに係る主題を含み、ルートを決定することは、複数のルートセグメントに関連付けられる道路コスト情報を決定することと;ルートセグメントに関連付けられるネットワーク状態情報に基づいて、ルートセグメントに関連付けられる道路コスト情報を調整することと;複数のルートセグメントに関連付けられる調整された道路コスト情報に応じて、ルートを決定することと;を備える。
【0073】
例16は、例11〜例15のいずれかに係る主題を含み、調整された道路コスト情報に応じて、ルートを決定することは、調整された道路コスト情報に基づいてダイクストラ最短経路グラフ検索法を実行することを備える。
【0074】
例17は、例11〜例16のいずれかに係る主題を含み、ルートを決定することは、開始位置から行き先位置までの暫定ルートを決定することであって、暫定ルートがルートセグメントを含むことと;ルートセグメントに関連付けられるネットワーク状態情報に基づいて暫定ルートを変えることと;を備える。
【0075】
例18は、例11〜例17のいずれかに係る主題を含み、暫定ルートを変えることは、ルートセグメントに関連付けられるネットワーク状態情報が、基準のネットワーク状態に対して所定の関係を有するかどうかを判断することと;ネットワーク状態情報が、基準のネットワーク状態に対して所定の関係を有することに応答して、上記ルートセグメントを回避するように、ルートを再ルーティングすることと;を備える。
【0076】
例19は、例11〜例18のいずれかに係る主題を含み、第1のモバイルコンピューティングデバイスは、第2のモバイルコンピューティングデバイスと異なる。
【0077】
例20は、例11〜例19のいずれかに係る主題を含み、第1のモバイルコンピューティングデバイスは、第2のモバイルコンピューティングデバイスと同じデバイスである。
【0078】
例21は、ユーザ安全性通知のためのモバイルコンピューティングデバイスを含み、当該モバイルコンピューティングデバイスは:モバイルコンピューティングデバイスのデバイスコンテキストを決定するコンテキスト決定モジュールと;デバイスコンテキストに基づいて、評価のために位置を予測する位置予測モジュールと;(i)所定の安全性データとデバイスコンテキストに基づいて、予測された位置について安全性レベルを決定し、(ii)安全性レベルを閾値の安全性レベルと比較する安全性決定モジュールと;安全性レベルが、閾値の安全性レベルに対して所定の関係を有するという判断に応答して、安全性レベルをモバイルコンピューティングデバイスのユーザに通知するユーザ通知モジュールと;を備える。
【0079】
例22は、例21に係る主題を含み、安全性レベルを決定することは、所定の犯罪データに基づいて、決定された位置に関連付けられる予測犯罪レベルを決定することを備える。
【0080】
例23は、例21又は例22に係る主題を含み、予測犯罪レベルを決定することは、地理情報システムサーバから所定の犯罪データを受け取ることを備える。
【0081】
例24は、例21〜例23のいずれかに係る主題を含み、安全性レベルを決定することは、決定された位置に関連付けられる、予測される大群衆が集まるイベントを決定することを備える。
【0082】
例25は、例21〜例24のいずれかに係る主題を含み、予測される大群衆が集まるイベントを決定することは、地理情報システムサーバから所定のイベントスケジュールを受け取ることを備える。
【0083】
例26は、例21〜例25のいずれかに係る主題を含み、安全性レベルをユーザに通知することは、ワーニング信号を生成することを備える。
【0084】
例27は、例21〜例26のいずれかに係る主題を含み、ワーニング信号は、可視、可聴又は触覚ワーニングを備える。
【0085】
例28は、例21〜例27のいずれかに係る主題を含み、ユーザ通知モジュールは更に、安全性レベルが閾値安全性レベルに対して所定の関係を有する間、ワーニング信号を維持する。
【0086】
例29は、例21〜例28のいずれかに係る主題を含み、安全性レベルをユーザに通知することは、提案される代替ルートをユーザに提示することを更に備える。
【0087】
例30は、例21〜例29のいずれかに係る主題を含み、提案される代替ルートを提示することは、視覚的方向インジケータを表示するか、触覚方向インジケータを生成することを備える。
【0088】
例31は、例21〜例30のいずれかに係る主題を含み、提案される代替ルートを提示することは、提案される代替ルートをモバイルコンピューティングの予測ルート上に提示することを備える。
【0089】
例32は、例21〜例31のいずれかに係る主題を含み、安全性レベルをユーザに通知することは、モバイルコンピューティングの予測ルートの地図上に安全性レベルをオーバーレイすることを備える。
【0090】
例33は、例21〜例32のいずれかに係る主題を含み、デバイスコンテキストは、モバイルコンピューティングデバイスの位置;モバイルコンピューティングデバイスの方向とスピード;時刻;モバイルコンピューティングデバイスの計画ルート;モバイルコンピューティングデバイスの輸送手段;又はモバイルコンピューティングデバイスに関連付けられる車両範囲を備える。
【0091】
例34は、例21〜例33のいずれかに係る主題を含み、デバイスコンテキストを決定することは、モバイルコンピューティングデバイスの計画ルートについて、ユーザから要求された行き先を受け取ることを備える。
【0092】
例35は、例21〜例34のいずれかに係る主題を含み、評価のために位置を予測することは、モバイルコンピューティングデバイスの現在の位置を決定することを備える。
【0093】
例36は、例21〜例35のいずれかに係る主題を含み、評価のために位置を予測することは、モバイルコンピューティングデバイスの近くの行き先を決定することを備える。
【0094】
例37は、例21〜例36のいずれかに係る主題を含み、評価のために位置を予測することは、モバイルコンピューティングデバイスの予測ルート上の行き先を決定することを備える。
【0095】
例38は、方向ルーティング指示を生成するための方法を含み、当該方法は、モバイルコンピューティングデバイスによって、開始位置と行き先位置との間の1つ以上のルートを定義する複数のルートセグメントのうちのあるルートセグメントに関連付けられるネットワーク状態情報を決定するステップと;モバイルコンピューティングデバイスによって、ネットワーク状態情報を格納するステップと;モバイルコンピューティングデバイスによって、ネットワーク状態情報に応じて開始位置から行き先位置までのルートを決定するステップと;を備える。
【0096】
例39は、例38に係る主題を含み、ネットワーク状態情報を決定するステップは、ルートセグメントに関連付けられるネットワーク状態情報を決定するステップを備える。
【0097】
例40は、例38又は例39に係る主題を含み、ネットワーク状態情報を決定するステップは、ルートセグメントに関連付けられるネットワーク信号強度を決定するステップを備える。
【0098】
例41は、例38〜例40のいずれかに係る主題を含み、ネットワーク状態情報を決定するステップは、モバイルコンピューティングデバイスの現在の位置を決定するステップと;モバイルコンピューティングデバイスの現在の位置に関連付けられるネットワーク状態情報を決定するステップと;ネットワーク状態情報を、複数のルートセグメントのうち現在の位置に関連付けられるルートセグメントに関連付けるステップと;を備える。
【0099】
例42は、例38〜例41のいずれかに係る主題を含み、ネットワーク状態情報を決定するステップは、ルートセグメントに関連付けられるモバイルコンピューティングデバイスの複数の位置を決定するステップと;複数の位置について平均ネットワーク状態情報を決定するステップと;平均ネットワーク状態情報をルートセグメントに関連付けるステップとを含む。
【0100】
例43は、例38〜例42のいずれかに係る主題を含み、ネットワーク状態情報を決定するステップは、ルートセグメントに関連付けられるネットワーク状態情報をクラウドソーシングサーバから受け取るステップを備える。
【0101】
例44は、例38〜例43のいずれかに係る主題を含み、ルートを決定するステップは、複数のルートセグメントに関連付けられる道路コスト情報を決定するステップと;ルートセグメントに関連付けられるネットワーク状態情報に基づいて、ルートセグメントに関連付けられる道路コスト情報を調整するステップと;複数のルートセグメントに関連付けられる調整された道路コスト情報に応じて、ルートを決定するステップと;を備える。
【0102】
例45は、例38〜例44のいずれかに係る主題を含み、調整された道路コスト情報に応じて、ルートを決定するステップは、調整された道路コスト情報に基づいてダイクストラ最短経路グラフ検索法を実行するステップを備える。
【0103】
例46は、例38〜例45のいずれかに係る主題を含み、ルートを決定するステップは、開始位置から行き先位置までの暫定ルートを決定するステップであって、暫定ルートがルートセグメントを含むステップと;ルートセグメントに関連付けられるネットワーク状態情報に基づいて暫定ルートを変えるステップと;を備える。
【0104】
例47は、例38〜例46のいずれかに係る主題を含み、暫定ルートを変えるステップは、ルートセグメントに関連付けられるネットワーク状態情報が、基準のネットワーク状態に対して所定の関係を有するかどうかを判断するステップと;ネットワーク状態情報が、基準のネットワーク状態に対して所定の関係を有することに応答して、上記ルートセグメントを回避するように、ルートを再ルーティングするステップと;を備える。
【0105】
例48は、方向ルーティング指示を生成するための方法を含み、当該方法は、クラウドソーシングサーバによって、第1のモバイルコンピューティングデバイスからネットワーク状態情報を受け取るステップであって、ネットワーク状態情報が、開始位置と行き先値との間の1つ以上のルートを定義する複数のルートセグメントのうちのあるルートセグメントに関連付けられるステップと;クラウドソーシングサーバによって、開始位置から行き先位置までのルートを求める要求を、第2のモバイルコンピューティングデバイスから受け取るステップと;クラウドソーシングサーバによって、ネットワーク状態情報に応じて開始位置から行き先位置までのルートを決定するステップと;を備える。
【0106】
例49は、例48に係る主題を含み、クラウドソーシングサーバによって、第2のモバイルコンピューティングデバイスにルートを伝送するステップを更に含む。
【0107】
例50は、例48又は例49に係る主題を含み、ネットワーク状態情報を受け取るステップは、位置に関連付けられるネットワークタイプを受け取るステップを備える。
【0108】
例51は、例48〜例50のいずれかに係る主題を含み、ネットワーク状態情報を受け取るステップは、位置に関連付けられるネットワーク信号強度を受け取るステップを備える。
【0109】
例52は、例48〜例51のいずれかに係る主題を含み、ルートを決定するステップは、複数のルートセグメントに関連付けられる道路コスト情報を決定するステップと;ルートセグメントに関連付けられるネットワーク状態情報に基づいて、ルートセグメントに関連付けられる道路コスト情報を調整するステップと;複数のルートセグメントに関連付けられる調整された道路コスト情報に応じて、ルートを決定するステップと;を備える。
【0110】
例53は、例48〜例52のいずれかに係る主題を含み、調整された道路コスト情報に応じて、ルートを決定するステップは、調整された道路コスト情報に基づいてダイクストラ最短経路グラフ検索法を実行するステップを備える。
【0111】
例54は、例48〜例53のいずれかに係る主題を含み、ルートを決定するステップは、開始位置から行き先位置までの暫定ルートを決定するステップであって、暫定ルートがルートセグメントを含むステップと;ルートセグメントに関連付けられるネットワーク状態情報に基づいて暫定ルートを変えるステップと;を備える。
【0112】
例55は、例48〜例54のいずれかに係る主題を含み、暫定ルートを変えるステップは、ルートセグメントに関連付けられるネットワーク状態情報が、基準のネットワーク状態に対して所定の関係を有するかどうかを判断するステップと;ネットワーク状態情報が、基準のネットワーク状態に対して所定の関係を有することに応答して、上記ルートセグメントを回避するように、ルートを再ルーティングするステップと;を備える。
【0113】
例56は、例48〜例55のいずれかに係る主題を含み、第1のモバイルコンピューティングデバイスは、第2のモバイルコンピューティングデバイスと異なる。
【0114】
例57は、例48〜例56のいずれかに係る主題を含み、第1のモバイルコンピューティングデバイスは、第2のモバイルコンピューティングデバイスと同じデバイスである。
【0115】
例58は、ユーザ安全性通知のための方法を含み、当該方法は、モバイルコンピューティングデバイスによって、モバイルコンピューティングデバイスのデバイスコンテキストを決定するステップと;モバイルコンピューティングデバイスによって、デバイスコンテキストに基づいて、評価のために位置を予測するステップと;モバイルコンピューティングデバイスによって、所定の安全性データとデバイスコンテキストに基づいて、予測された位置について安全性レベルを決定するステップと;モバイルコンピューティングデバイスによって、安全性レベルを閾値の安全性レベルと比較するステップと;安全性レベルが、閾値の安全性レベルに対して所定の関係を有するという判断に応答して、安全性レベルをモバイルコンピューティングデバイスのユーザに通知するステップと;を備える。
【0116】
例59は、例58に係る主題を含み、安全性レベルを決定するステップは、所定の犯罪データに基づいて、決定された位置に関連付けられる予測犯罪レベルを決定するステップを備える。
【0117】
例60は、例58又は例59に係る主題を含み、予測犯罪レベルを決定するステップは、地理情報システムサーバから所定の犯罪データを受け取るステップを備える。
【0118】
例61は、例58〜例60のいずれかに係る主題を含み、安全性レベルを決定するステップは、決定された位置に関連付けられる、予測される大群衆が集まるイベントを決定するステップを備える。
【0119】
例62は、例58〜例61のいずれかに係る主題を含み、予測される大群衆が集まるイベントを決定するステップは、地理情報システムサーバから所定のイベントスケジュールを受け取るステップを備える。
【0120】
例63は、例58〜例62のいずれかに係る主題を含み、安全性レベルをユーザに通知するステップは、ワーニング信号を生成するステップを備える。
【0121】
例64は、例58〜例63のいずれかに係る主題を含み、ワーニング信号を生成するステップは、可視、可聴又は触覚ワーニングを生成するステップを備える。
【0122】
例65は、例58〜例64のいずれかに係る主題を含み、安全性レベルが閾値安全性レベルに対して所定の関係を有する間、モバイルコンピューティングデバイスによってワーニング信号を維持するステップを更に備える。
【0123】
例66は、例58〜例65のいずれかに係る主題を含み、安全性レベルをユーザに通知するステップは、提案される代替ルートをユーザに提示するステップを更に備える。
【0124】
例67は、例58〜例66のいずれかに係る主題を含み、提案される代替ルートを提示するステップは、視覚的方向インジケータを表示するか、触覚方向インジケータを生成するステップを備える。
【0125】
例68は、例58〜例67のいずれかに係る主題を含み、提案される代替ルートを提示するステップは、提案される代替ルートをモバイルコンピューティングの予測ルート上に提示するステップを備える。
【0126】
例69は、例58〜例68のいずれかに係る主題を含み、安全性レベルをユーザに通知するステップは、モバイルコンピューティングの予測ルートの地図上に安全性レベルをオーバーレイするステップを備える。
【0127】
例70は、例58〜例69のいずれかに係る主題を含み、デバイスコンテキストを決定するステップは、モバイルコンピューティングデバイスの位置を決定するステップ;モバイルコンピューティングデバイスの方向とスピードを決定するステップ;時刻を決定するステップ;モバイルコンピューティングデバイスの計画ルートを決定するステップ;モバイルコンピューティングデバイスの輸送手段を決定するステップ;又はモバイルコンピューティングデバイスに関連付けられる車両範囲を決定するステップを備える。
【0128】
例71は、例58〜例70のいずれかに係る主題を含み、計画ルートを決定するステップは、ユーザから要求された行き先を受け取るステップを備える。
【0129】
例72は、例58〜例71のいずれかに係る主題を含み、評価のために位置を予測するステップは、モバイルコンピューティングデバイスの現在の位置を決定するステップを備える。
【0130】
例73は、例58〜例72のいずれかに係る主題を含み、評価のために位置を予測するステップは、モバイルコンピューティングデバイスの近くの行き先を決定するステップを備える。
【0131】
例74は、例58〜例73のいずれかに係る主題を含み、評価のために位置を予測するステップは、モバイルコンピューティングデバイスの予測ルート上の行き先を決定するステップを備える。
【0132】
例75は、プロセッサと、プロセッサによって実行されると、コンピューティングデバイスに、例38〜例74のいずれかに係る方法を実行させる複数の命令を格納するメモリとを備える、コンピューティングデバイスを含む。
【0133】
例76は、実行されたことに応答してコンピューティングデバイスに例38〜例74のいずれかに係る方法を実行させる、複数の命令を備える1つ以上のマシン読取可能記憶媒体を含む。
【0134】
例77は、例38〜例74のいずれかに係る方法を実行するための手段を備えるコンピューティングデバイス。