(57)【特許請求の範囲】
【請求項１】
リアルタイムのセグメントパフォーマンス情報を提供する方法であって、
身体活動を行っている少なくとも２人のユーザが互いに同時進行である範囲を示す同時性の範囲の定義を受け取ること、
第１のユーザの記録された位置情報の少なくとも一部に少なくとも部分的に基づいて、前記第１のユーザの現行活動に一致するセグメントを決定することであって、前記第１のユーザの記録された位置情報の少なくとも一部が、前記セグメントに関連付けられている地理的情報のセットの少なくとも一部に一致することの決定を含む、前記第１のユーザの現行活動に一致するセグメントを決定すること、
第２のユーザの記録された位置情報の少なくとも一部に少なくとも部分的に基づいて、前記第２のユーザの現行活動に一致する前記セグメントを決定すること、
少なくとも前記同時性の範囲の定義に基づいて、前記第２のユーザが前記第１のユーザについての同時ユーザであるか否かを決定すること、
前記第２のユーザが前記第１のユーザの同時ユーザであるか否かの決定に少なくとも部分的に基づいて、前記セグメントでの前記第１のユーザの現行活動に関するリアルタイムのセグメントパフォーマンス情報を伝達すること、
を備える、方法。
【請求項２】
請求項１に記載の方法であって、前記第１のユーザの現行活動が前記セグメントに一致することの決定は、前記第１のユーザの記録された位置情報の少なくとも一部が、前記セグメントに関連付けられている仮想スタートラインを交差していることを決定することを含む、方法。
【請求項３】
請求項１に記載の方法であって、前記第１のユーザの現行活動が前記セグメントに一致することの決定は、前記第１のユーザの記録された位置情報の少なくとも一部が、前記セグメントに関連付けられている部分を交差していることを決定することを含む、方法。
【請求項４】
請求項１に記載の方法であって、前記位置情報は、全地球測位システム（ＧＰＳ）のポイントと、各ＧＰＳポイントにおける関連のタイムスタンプとを含む、方法。
【請求項５】
請求項１に記載の方法であって、前記リアルタイムのセグメントパフォーマンス情報の伝達は、デバイスに送信されたフィードバックデータに少なくとも部分的に基づく、方法。
【請求項６】
請求項１に記載の方法であって、前記リアルタイムのセグメントパフォーマンス情報の伝達は、デバイスで生成されたフィードバックデータに少なくとも部分的に基づく、方法。
【請求項７】
請求項１に記載の方法であって、前記セグメントは、潜在的にマッチングされるセグメントのユーザ選択に関連する、方法。
【請求項８】
請求項１に記載の方法であって、さらに、
潜在的にマッチングされる１または複数のセグメントに関するデータをデバイスに取得することを備え、
前記取得されたセグメントデータは、前記デバイスにローカルに格納され、前記第１のユーザの記録された位置情報の前記少なくとも一部、および前記第１のユーザの現行活動に関する他のデータは、前記デバイスにおいて前記ローカルに格納されたデータと比較される、方法。
【請求項９】
請求項１に記載の方法であって、前記パフォーマンス情報は、前記セグメントでの前記第１のユーザの現行活動に関するパフォーマンスデータと、前記セグメントに関連する格納された履歴パフォーマンスデータとの間の比較結果を含む、方法。
【請求項１０】
請求項１に記載の方法であって、前記格納された履歴パフォーマンスデータは、前記第１のユーザおよび別のユーザの一方または両方に関するデータを含む、方法。
【請求項１１】
請求項１に記載の方法であって、前記パフォーマンス情報は、前記セグメントでの前記第１のユーザの現行活動に関するパフォーマンスデータと、前記セグメントでの他のユーザの現行活動に関する格納された同時パフォーマンスデータとの間の比較結果を含む、方法。
【請求項１２】
請求項１に記載の方法であって、さらに、前記第１のユーザの現行活動に関する前記パフォーマンスデータと比較されるパフォーマンスデータを有する１または複数の他のユーザに関するユーザ設定可能な選択を受信することを備える、方法。
【請求項１３】
請求項１に記載の方法であって、さらに、サードパーティが運営するソーシャルネットワークに前記パフォーマンス情報の少なくとも一部を送信することを備える、方法。
【請求項１４】
請求項１に記載の方法であって、さらに、前記パフォーマンス情報の前記送信された一部に少なくとも部分的に基づいて、前記サードパーティが運営するソーシャルネットワークから応答を受信することを備える、方法。
【請求項１５】
請求項１に記載の方法であって、さらに、前記第１のユーザの記録された前記パフォーマンス情報に少なくとも部分的に基づいて、前記セグメントでの前記第１のユーザの現行活動に関する現在の進捗を決定することを備える、方法。
【請求項１６】
請求項１に記載の方法であって、さらに、別のセグメントが前記第１のユーザの現行活動の現在位置の近くに存在するか否かを判定することを備える、方法。
【請求項１７】
リアルタイムのセグメントパフォーマンス情報を提供するためのシステムであって、
プロセッサであって、
身体活動を行っている少なくとも２人のユーザが互いに同時進行である範囲を示す同時性の範囲の定義を受け取り、
第１のユーザの記録された位置情報の少なくとも一部に少なくとも部分的に基づいて、前記第１のユーザの現行活動に一致するセグメントを決定し、前記第１のユーザの現行活動に一致するセグメントを決定することは、前記第１のユーザの記録された位置情報の少なくとも一部が、前記セグメントに関連付けられている地理的情報のセットの少なくとも一部に一致することの決定を含み、
第２のユーザの記録された位置情報の少なくとも一部に少なくとも部分的に基づいて、前記第２のユーザの現行活動に一致する前記セグメントを決定し、
少なくとも前記同時性の範囲の定義に基づいて、前記第２のユーザが前記第１のユーザについての同時ユーザであるか否かを決定し、
前記第２のユーザが前記第１のユーザの同時ユーザであるか否かの決定に少なくとも部分的に基づいて、前記セグメントでの前記第１のユーザの現行活動に関するリアルタイムのセグメントパフォーマンス情報を伝達するよう構成されているプロセッサと、
前記プロセッサに接続され、前記プロセッサに命令を提供するよう構成されているメモリと、
を備える、システム。
【請求項１８】
請求項１７に記載のシステムであって、前記リアルタイムのセグメントパフォーマンス情報の伝達は、デバイスに送信されたフィードバックデータに少なくとも部分的に基づく、システム。
【請求項１９】
請求項１７に記載のシステムであって、前記リアルタイムのセグメントパフォーマンス情報の伝達は、デバイスで生成されたフィードバックデータに少なくとも部分的に基づく、システム。
【請求項２０】
請求項１７に記載のシステムであって、前記プロセッサは、さらに、
潜在的にマッチングされる１または複数のセグメントに関するデータをデバイスに取得するように構成されており、
前記取得されたセグメントデータは、前記デバイスにローカルに格納され、前記第１のユーザの記録された前記位置情報の前記少なくとも一部、および前記第１のユーザの現行活動に関する他のデータは、前記デバイスにおいて前記ローカルに格納されたデータと比較される、システム。
【請求項２１】
請求項１７に記載のシステムであって、前記パフォーマンス情報は、前記セグメントでの前記第１のユーザの現行活動に関するパフォーマンスデータと、前記セグメントに関連する格納された履歴パフォーマンスデータとの間の比較結果を含む、システム。
【請求項２２】
請求項１７に記載のシステムであって、前記パフォーマンス情報は、前記セグメントでの前記第１のユーザの現行活動に関するパフォーマンスデータと、前記セグメントでの他のユーザの現行活動に関する格納された同時パフォーマンスデータとの間の比較結果を含む、システム。
【請求項２３】
請求項１７に記載のシステムであって、前記プロセッサは、さらに、前記第１のユーザの現行活動に関するパフォーマンスデータと比較されるパフォーマンスデータを有する１または複数の他のユーザに関するユーザ設定可能な選択を受信するように構成されている、システム。
【請求項２４】
リアルタイムのセグメントパフォーマンス情報を提供するためのコンピュータプログラムであって、
身体活動を行っている少なくとも２人のユーザが互いに同時進行である範囲を示す同時性の範囲の定義を受け取るための機能と、
第１のユーザの記録された位置情報の少なくとも一部に少なくとも部分的に基づいて、前記第１のユーザの現行活動に一致するセグメントを決定するために機能であって、前記第１のユーザの記録された位置情報の少なくとも一部が、前記セグメントに関連付けられている地理的情報のセットの少なくとも一部に一致することの決定を含む、前記第１のユーザの現行活動に一致するセグメントを決定するための機能と、
第２のユーザの記録された位置情報の少なくとも一部に少なくとも部分的に基づいて、前記第２のユーザの現行活動に一致する前記セグメントを決定するための機能と、
少なくとも前記同時性の範囲の定義に基づいて、前記第２のユーザが前記第１のユーザについての同時ユーザであるか否かを決定するための機能と、
前記第２のユーザが前記第１のユーザの同時ユーザであるか否かの決定に少なくとも部分的に基づいて、前記セグメントでの前記第１のユーザの現行活動に関するリアルタイムのセグメントパフォーマンス情報を伝達するための機能と
をコンピュータによって実現させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
他の出願の相互参照
本願は、すべての目的のために参照により本明細書に組み込まれる、発明の名称を「ＭＯＢＩＬＥ  ＧＬＯＢＡＬ  ＰＯＳＩＴＩＯＮＩＮＧ  ＳＹＳＴＥＭ  （ＧＰＳ）  ＤＥＶＩＣＥ  ＦＯＲ  ＰＲＯＶＩＤＩＮＧ  ＲＥＡＬ−ＴＩＭＥ  ＦＥＥＤＢＡＣＫ」とする、２０１１年３月３１日出願の米国特許仮出願第６１／４７０，２３８号に基づく優先権を主張する。
【背景技術】
【０００２】
従来から、ＧＰＳデバイスは、アスリートの身体活動（例えば、ランニング、サイクリング）中にアスリートのＧＰＳ位置およびその他のデータポイント（例えば、高度、心拍数）を記録および格納することが可能であり、また、ＧＰＳデバイスは、かかる身体活動の実行中にリモートサーバへ増分的にこれらのデータポイントをアップロードでき得る。
【図面の簡単な説明】
【０００３】
以下の詳細な説明と添付の図面において、本発明の様々な実施形態を開示する。
【０００４】
【図１】いくつかの実施形態に従って、セグメントを定義してマッチングさせるためのシステムを示す図。
【０００５】
【図２Ａ】いくつかの実施形態に従って、セグメントマッチングサーバの一実施形態を示す図。
【０００６】
【図２Ｂ】いくつかの実施形態に従って、エフォートデータベースのテーブルに格納されたエフォートの一例を示す図。
【０００７】
【図３】いくつかの実施形態に従って、セグメントマッチングのための処理の一実施形態を示すフローチャート。
【０００８】
【図４】いくつかの実施形態に従って、エフォートに基づいてセグメントを定義する処理の一実施形態を示すフローチャート。
【０００９】
【図５】いくつかの実施形態に従って、エフォートに基づいてセグメントを定義するためのユーザインターフェースの一例を示す図。
【００１０】
【図６】いくつかの実施形態に従って、セグメントのスタートポイントの選択を示すユーザインターフェースの一例を示す図。
【００１１】
【図７】いくつかの実施形態に従って、セグメントのゴールポイントの選択を示すユーザインターフェースの一例を示す図。
【００１２】
【図８】いくつかの実施形態に従って、地図上の一連の選択を用いてセグメントを定義するためのユーザインターフェースの一例を示す図。
【００１３】
【図９】いくつかの実施形態に従って、一連のＧＰＳ情報を最小外接矩形（ＭＢＲ）に変換する一実施形態を示すフローチャート。
【００１４】
【図１０Ａ】いくつかの実施形態に従って、一連のＧＰＳ情報を１セットのＭＢＲに変換する一例を示す図。
【００１５】
【図１０Ｂ】いくつかの実施形態に従って、セグメント情報を格納するためのデータベーステーブルのエントリの一例を示す図。
【００１６】
【図１１Ａ】いくつかの実施形態に従って、セグメントデータベースで一致するセグメントを検索する処理の一実施形態を示すフローチャート。
【００１７】
【図１１Ｂ】いくつかの実施形態に従って、エフォートをセグメントに対してマッチングする一実施形態を示すフローチャート。
【００１８】
【図１２】いくつかの実施形態に従って、仮想スタートラインを作成する一例を示す図。
【００１９】
【図１３】いくつかの実施形態に従って、一致するエフォートを決定するための処理の一実施形態を示すフローチャート。
【００２０】
【図１４】いくつかの実施形態に従って、一致したエフォートについて解析されたデータの表示の一例を示す図。
【００２１】
【図１５】いくつかの実施形態に従って、セグメントに関連する現行活動中にリアルタイムフィードバックを提供するためのシステムの一実施形態を示す図。
【００２２】
【図１６】いくつかの実施形態に従って、ユーザが活動を行う間にシステム１５００を利用する様子を示す図。
【００２３】
【図１７】いくつかの実施形態に従って、セグメントマッチングサーバの一実施形態を示す図。
【００２４】
【図１８】いくつかの実施形態に従って、セグメントに関連する現行活動中にリアルタイムフィードバックを提供するための処理の一実施形態を示すフローチャート。
【００２５】
【図１９】いくつかの実施形態に従って、デバイスで記録された情報をリモートのセグメントマッチングサーバに送信することに関するパラメータを設定するための処理の一実施形態を示すフローチャート。
【００２６】
【図２０】いくつかの実施形態に従って、セグメントデータをサーバからプリフェッチして、デバイスでリアルタイムフィードバックを生成するための処理の一実施形態を示すフローチャート。
【００２７】
【図２１】ユーザの現行活動のパフォーマンスデータとの比較のために取得されるデータへのフィルタに関するパラメータを設定するための処理の一実施形態を示すフローチャート。
【００２８】
【図２２】いくつかの実施形態に従って、ユーザの現行活動にセグメントをマッチングさせるための処理の一実施形態を示すフローチャート。
【００２９】
【図２３】いくつかの実施形態に従って、セグメントに沿ったユーザの進捗を決定するための処理の一実施形態を示すフローチャート。
【００３０】
【図２４】いくつかの実施形態に従って、ユーザの現行活動に関するリアルタイムパフォーマンス情報を伝達するための処理の一実施形態を示すフローチャート。
【００３１】
【図２５】いくつかの実施形態に従って、「Ｍａｒｉｎｃｅｌｌｏ  Ｔｒａｉｌ」セグメントで完了したエフォートに関する順位表（Ｌｅａｄｅｒｂｏａｒｄ）を表示したユーザインターフェースのスクリーンショットを示す図。
【００３２】
【図２６】いくつかの実施形態に従って、ユーザの現行活動の近くに位置する検出されたセグメント（「登山道（ｃｌｉｍｂｓ）」）のリストを表示したユーザインターフェースのスクリーンショットを示す図。
【００３３】
【図２７】いくつかの実施形態に従って、ユーザの現行活動の近くに位置する検出されたセグメント（「登山道（ｃｌｉｍｂｓ）」）の地図（ｍａｐ）を表示したユーザインターフェースのスクリーンショットを示す図。
【発明を実施するための形態】
【００３４】
本発明は、処理、装置、システム、物質の組成、コンピュータ読み取り可能な格納媒体上に具現化されたコンピュータプログラム製品、および／または、プロセッサ（プロセッサに接続されたメモリに格納および／またはそのメモリによって提供される命令を実行するよう構成されたプロセッサ）を含め、様々な形態で実装されうる。本明細書では、これらの実装または本発明が取りうる任意の他の形態を、技術と呼ぶ。一般に、開示された処理の工程の順序は、本発明の範囲内で変更されてもよい。特に言及しない限り、タスクを実行するよう構成されるものとして記載されたプロセッサまたはメモリなどの構成要素は、ある時間にタスクを実行するよう一時的に構成された一般的な構成要素として、または、タスクを実行するよう製造された特定の構成要素として実装されてよい。本明細書では、「プロセッサ」という用語は、１または複数のデバイス、回路、および／または、コンピュータプログラム命令などのデータを処理するよう構成された処理コアを指すものとする。
【００３５】
以下では、本発明の原理を示す図面を参照しつつ、本発明の１または複数の実施形態の詳細な説明を行う。本発明は、かかる実施形態に関連して説明されているが、どの実施形態にも限定されない。本発明の範囲は、特許請求の範囲によってのみ限定されるものであり、多くの代替物、変形物、および、等価物を含む。以下の説明では、本発明の完全な理解を提供するために、多くの具体的な詳細事項が記載されている。これらの詳細事項は、例示を目的としたものであり、本発明は、これらの具体的な詳細事項の一部または全てがなくとも特許請求の範囲に従って実施可能である。簡単のために、本発明に関連する技術分野で周知の技術事項については、本発明が必要以上にわかりにくくならないように、詳細には説明していない。
【００３６】
セグメントを定義して、セグメントにエフォートをマッチングさせることについて、本明細書で開示する。本明細書で用いられているように、セグメントとは、関心のある地理的経路のことであり、基準（例えば、経路に沿った運動パフォーマンスの比較および／またはその他の用途のための基準）として利用できる。例えば、セグメントは、サイクリストに人気のヒルクライムコースを特定するために利用されうる。本明細書で用いられているように、エフォートとは、タイムスタンプを伴う記録された一連のＧＰＳ情報のことである（例えば、運動パフォーマンスを表しうる）。いくつかの実施形態において、エフォートは、関連データ（例えば、エフォートが関連する活動の測定値）と共に格納される。いくつかの実施形態では、格納されたエフォートから１または複数のセグメントが導出される。いくつかの実施形態において、ユーザは、セグメントを定義できる。いくつかの実施形態では、エフォートの視覚的表現がユーザインターフェースに提示され、ユーザは視覚的表現を用いてセグメントを定義する。いくつかの実施形態では、地図がユーザインターフェースに提示され、ユーザは地図上に経路を示すことによってセグメントを定義する。様々な実施形態において、一連のＧＰＳ情報が、セグメントとして格納される前に、１セットの地理的抽象に変換される。いくつかの実施形態において、セグメントは、そのセグメントに一致すると判定されたエフォートの関連データと共に格納される。
【００３７】
様々な実施形態において、エフォートは、格納されたセグメントとマッチングされる。様々な実施形態において、２つのレベルのマッチングが、エフォートおよび格納済みのセグメントを用いて実行されうる。第１のレベルのマッチングでは、格納されたセグメントの１つに対するエフォートの一致率が第１の閾値を超える場合に、第１の決定がなされる（例えば、エフォートは、セグメントに対する緩やかな一致である）。第２のレベルのマッチングでは、格納されたセグメントの１つに対するエフォートの一致率が（第１の閾値よりも大きい）第２の閾値を超え、さらに、エフォートがセグメントのスタートラインおよびゴールラインを横切る（セグメントのスタートラインおよびゴールラインと交差する）場合（または、セグメントがループを形成し、二度目にループセグメントのエントリポイントを超えたと判定された場合）、第２の決定がなされる（例えば、エフォートは、セグメントに対する厳密な一致である）。いくつかの実施形態では、エフォートが、１または複数の格納されたセグメントに対する緩やかな一致であり、そのエフォートが、さらに、１または複数の格納されたセグメントに対する厳密な一致であると判定されうる。いくつかの実施形態において、エフォートがセグメントに（例えば、緩やかな一致または厳密な一致のいずれかとして）一致する場合、エフォートの関連データが、一致したセグメントと共に格納された関連データと比較される。いくつかの実施形態において、エフォートがセグメントに一致する場合、エフォートの関連データは、セグメントに一致する他のエフォートの関連データとも比較される。
【００３８】
図１は、いくつかの実施形態に従ってセグメントを定義してマッチングさせるためのシステムである。システム１００は、デバイス１０２、ネットワーク１０４、および、セグメントマッチングサーバ１０６を備える。ネットワーク１０４は、様々な高速データネットワークおよび／または遠隔通信ネットワークを含む。デバイス１０２は、ネットワーク１０４を通してセグメントマッチングサーバ１０６と通信する。いくつかの実施形態において、システム１００は、図１の例に示したのと異なる数の構成要素を備えてもよい。
【００３９】
デバイス１０２は、ＧＰＳ情報および／または身体活動に関連するその他のデータを記録できるデバイスである。デバイス１０２は、さらに、ＧＰＳ情報および／または身体活動に関連するその他のデータがアップロードまたは転送されうるデバイスであってよい。デバイス１０２の例としては、ＧＰＳデバイス（例えば、Ｇａｒｍｉｎ  Ｆｏｒｅｒｕｎｎｅｒ  １１０、２０５、３０１、３０５、３１０ＸＴ、４０５、４０５ＣＸ、および、Ｇａｒｍｉｎ  Ｅｄｇｅ  ３０５、６０５、７０５、５００など、Ｇａｒｍｉｎ  ＦｏｒｅｒｕｎｎｅｒおよびＥｄｇｅデバイス）、ＧＰＳ記録アプリケーション（例えば、ＭｏｔｉｏｎＸ、Ｅｎｄｏｍｏｎｄｏ、および、ＲｕｎＫｅｅｐｅｒ）を備えたスマートフォン（例えば、ＡｎｄｒｏｉｄデバイスまたはＡｐｐｌｅ  ｉＰｈｏｎｅデバイス）などの携帯電話、コンピュータ、タブレットデバイス、および／または、その他の汎用コンピュータデバイスおよび／または専用コンピュータデバイスが挙げられるが、これらに限定されず、それらは、一般的に、汎用プロセッサと、メモリまたはその他のストレージ要素と、ネットワークまたは出入力（Ｉ／Ｏ）機能と、統合ＧＰＳ機能またはサポートもしくはＧＰＳデバイスまたはＧＰＳ機能のためのインターフェースと、を備える。
【００４０】
様々な実施形態において、デバイス１０２（または、そのアプリケーション）は、活動中に、ＧＰＳ情報と、身体活動に関連するデータとを記録するよう構成されている。いくつかの実施形態において、デバイス１０２は、活動の終了後に、記録されたＧＰＳ情報および活動中の身体活動に関連するデータを受信するよう構成されている（例えば、かかる情報が、デバイス１０２にアップロードされる）。いくつかの実施形態において、記録されたＧＰＳ情報および関連データは、「エフォート」と呼ばれる。言い換えると、エフォートは、身体活動の事象であり、地理情報、および、運動パフォーマンスに関連するその他の測定値によって表現されうる。身体活動の例としては、サイクリング、ランニング、および、スキーが挙げられる。いくつかの実施形態において、ＧＰＳ情報は、一連の連続的かつ離散的なＧＰＳデータポイント（例えば、緯度および経度）を含み、各ポイントに対してタイムスタンプを備える。いくつかの実施形態において、関連データは、標高、心拍数、仕事率／ワット数（例えば、消費されたエネルギ）、タイム、速度（例えば、セグメントおよび／またはルートごとの平均および／または最大速度、例えば、平均速度はタイムおよびＧＰＳ情報から導出されうる）を含むが、これらに限定されない。関連データは、様々な粒度で記録されうる。例えば、関連データは、各ＧＰＳデータポイント、活動全体（例えば、関連データが測定値の平均を含む）、または、活動の一部に対応しうる。一例として、サイクリングの時にデバイス１０２を利用できる。サイクリングの終わりに、ユーザは、ユーザが辿った地理的経路、ユーザがサイクリングでどれだけのエネルギを消費したか、どのくらい早くゴールしたか、平均速度、標高に基づいた測定値、および／または、その他の測定値を見るために、（例えば、デバイス１０２のユーザインターフェースを通して）記録されたＧＰＳ情報と共に自身のパフォーマンスを振り返ることができる。いくつかの実施形態において、デバイス１０２は、記録されたＧＰＳ情報および関連データ（例えば、エフォート）を格納する、および／または、エフォート情報をサーバ１０６に送信するよう構成される。いくつかの実施形態において、デバイス１０２は、対話型ユーザインターフェースを提示するよう構成される。ユーザインターフェースは、ＧＰＳ情報を表示し、それらの表示に関する（例えば、ユーザによってなされた）選択を受信しうる。いくつかの実施形態において、デバイス１０２は、受信した選択をセグメントマッチングサーバ１０６に送信する。
【００４１】
様々な実施形態において、セグメントマッチングサーバ１０６は、デバイス１０２のユーザインターフェースをサポートおよび提示するよう構成される。いくつかの実施形態において、セグメントマッチングサーバ１０６は、記録されたエフォートを用いてユーザインターフェースにおいてユーザが定義したセグメントを受信するよう構成される。セグメントとは、関心のある地理的経路のことを意味しており、地理的経路に沿った運動パフォーマンスの比較のための基準として利用できる。セグメントマッチングサーバ１０６は、一連のＧＰＳ情報および関連データ（例えば、エフォート）を受信するよう構成されている。いくつかの実施形態において、セグメントマッチングサーバ１０６は、地図ソフトウェアアプリケーションを用いてユーザインターフェースにＧＰＳ情報の視覚的表現を表示するよう構成されている。視覚的表現は、例えば、地図上にマークされた一連のフラッグまたは連続的な線であってよい。いくつかの実施形態において、セグメントマッチングサーバ１０６は、地図ソフトウェア／アプリケーション（例えば、Ｇｏｏｇｌｅ  Ｍａｐｓ、ＭａｐＱｕｅｓｔ、Ｂｉｎｇ  ｍａｐｓ、および／または、別のマッピングアプリケーション／サービス）のアプリケーション・プログラミング・インターフェース（ＡＰＩ）と相互作用するよう構成されたロジックを備えることによって、ユーザインターフェースで地図をサポートできる。いくつかの実施形態において、ユーザは、ＧＰＳ情報の視覚的表現を用いてセグメントを定義できる。いくつかの実施形態において、ＧＰＳ情報の視覚的表現に沿って、スタートポイントおよびゴールポイント（例えば、終点）が、セグメントを定義するために地図上で選択される。例えば、ユーザは、身体活動中に辿った地理的経路に沿ってスタートポイントおよび／またはゴールポイントを（例えば、マーカをドロップするか、または、クリックすることによって）選択できる。このように、選択されたスタートポイントおよびゴールポイントの間にある地理的経路の一部が、セグメントとして定義される。いくつかの実施形態において、スタートポイントおよびゴールポイントは、定義されたセグメントと共に格納される。いくつかの実施形態において、スタートポイントおよびゴールポイントの間にある地理的経路の一部は、抽象形態に変換された後に、セグメントを格納するためのデータベースに格納される。いくつかの実施形態において、定義されたセグメントに対応する関連データも、セグメントと共にデータベースに格納される。
【００４２】
いくつかの実施形態において、セグメントマッチングサーバ１０６は、地図上の選択肢を用いてユーザインターフェースにおいてユーザが定義したセグメントを受信するよう構成されている。いくつかの実施形態において、セグメントマッチングサーバ１０６は、地図（例えば、Ｇｏｏｇｌｅ  Ｍａｐｓ、ＭａｐＱｕｅｓｔ）を提示し、セグメントのコースを示すための地図上の一連のポイント選択を受信する。地図上の一連のポイント選択は、記録されたエフォートに基づく必要はなく、単に、関心のある任意の地理的経路であってよい。例えば、選択されるセグメントは、サイクリストが以前に走ったが記録はしていない経路であってもよいし、選択されるセグメントは、サイクリストが将来走りたいと思う経路であってもよい。地図上の一連のポイント選択は、一連のＧＰＳ情報（例えば、座標）に変換できる。いくつかの実施形態において、一連のＧＰＳ情報は、抽象形態に変換された後に、セグメントとして格納される。
【００４３】
いくつかの実施形態では、ユーザインターフェースにおいてセグメントが定義された後、格納されたエフォート（例えば、過去の身体活動からのＧＰＳ情報のセット）が、定義されたセグメントと比較される。いくつかの実施形態において、この定義されたセグメントとエフォートが比較された時に、部分的には、スタートポイントおよびゴールポイントを通過したことをエフォートのＧＰＳ情報が示すか否かをチェックすることによって、エフォートがセグメントと一致するか否かが判定される。１または複数のエフォートがセグメントに一致すると判定されると、エフォートに関連付けられたデータが、リトリーブされて分析される。いくつかの実施形態において、新たに定義されたセグメントに関連付けられたデータも、分析に含められる。例えば、データを比較することにより、セグメントに一致するどのエフォートがセグメント完了の最速タイムを有するのかを決定することができる。
【００４４】
セグメントマッチングサーバ１０６は、さらに、セグメントに対してエフォート（例えば、ＧＰＳ情報のセット）をマッチングするよう構成されている。いくつかの実施形態において、エフォートは、エフォートの一致を判定する前に、格納されたセグメントと同じ抽象形態に変換される。セグメントに対してエフォートをマッチングさせる１つの目的は、関心のある同一の区切られた経路にわたって行われた格納済みの身体活動の事例（すなわち、セグメント）を見いだすことである。言い換えると、セグメントに一致するエフォートとは、定義されたトラックに沿って行われた身体活動の事例のことである。同一のセグメントで起きた複数の身体活動の事例が見いだされると、それらの関連情報（例えば、終了タイム、速度、心拍数、および／または、ワット数）が、同一の経路における１または複数の個人による運動パフォーマンスに関して特定の統計値（例えば、最速タイム、最高ワット数）を生成するために比較されうる。いくつかの実施形態において、新たに定義されたセグメントについて、セグメントマッチングサーバ１０６は、格納されたエフォートをセグメントと比較するよう構成されている。いくつかの実施形態において、エフォートの関連データは、エフォートが一致すると判定されたセグメントと共に格納される。いくつかの実施形態において、セグメントマッチングサーバ１０６は、（例えば、デバイス１０２から）エフォートを受信し、一致を見いだすためにエフォートを格納済みのセグメントと比較するよう構成されている。様々な実施形態において、エフォートがセグメントと一致すると判定されると、それらの関連データが比較される（例えば、セグメントに一致するすべてのエフォートの関連データが比較される）。
【００４５】
図２Ａは、いくつかの実施形態に従って、セグメントマッチングサーバの一実施形態を示す図である。いくつかの実施形態において、セグメントマッチングサーバ１０６は、図２Ａの例を用いて実装されうる。図の例において、セグメントマッチングサーバ１０６は、セグメントデータベース２０２、エフォートデータベース２０４、定義エンジン２０６、および、マッチングエンジン２０８を備える。しかしながら、セグメントマッチングサーバ１０６は、より多くまたはより少ない構成要素を備えてもよい。いくつかの実施形態において、セグメントマッチングサーバは、市販の汎用コンピュータハードウェアを用いて実装される（例えば、市販のサーバ（ＨＰ  ＢｌａｄｅＳｙｓｔｅｍブレードサーバなど）上でＬｉｎｕｘ（登録商標）オペレーティングシステムを実行するホストサービスプロバイダ（ＡｍａｚｏｎＥＣ２クラウドなど）を用いて）。
【００４６】
セグメントデータベース２０２は、定義されたセグメントを格納するよう構成されている。例において、セグメントデータベース２０２は、１つのデータベースとして図示されているが、セグメントマッチングサーバは、定義されたセグメントを格納するための２以上のデータベースを含んでもよい。いくつかの実施形態において、セグメントデータベース２０２は、ユーザが、格納されたエフォートをアップロードして、ユーザインターフェースでエフォートの視覚的表現に沿ってスタートポイントおよびゴールポイント／終点を示すことによって定義されたセグメントを含む。いくつかの実施形態において、セグメントデータベース２０２は、ユーザがユーザインターフェースで地図上の経路に沿って一連の選択を行うことによって定義されたセグメントを含む。いくつかの実施形態において、セグメントデータベース２０２は、様々な経路または登山道の既知の特徴（例えば、専門団体によって提供された情報）に基づいて、（例えば、セグメントサーバ１０６の管理者によって）予め定義されたセグメントを含む。いくつかの実施形態において、セグメントは、抽象形態で（例えば、最小外接矩形のセットとして）セグメントデータベース２０２に格納される。抽象形態でセグメントを格納する１つの理由は、類似のセグメントまたはセグメントに一致するエフォートの検索クエリを効率的に実行できるようにするためである。いくつかの実施形態において、セグメントデータベース２０２は、Ｒ木インデックスに基づいて組織化される。いくつかの実施形態において、セグメントは、ＧＰＳデータポイントのセットとしてセグメントデータベース２０２に格納される。いくつかの実施形態において、セグメントデータベース２０２内の各セグメントは、セグメントに一致すると判定されたエフォートデータベース２０４からのエフォートの識別子と共に格納される。いくつかの実施形態において、セグメントデータベース２０２内の各セグメントは、セグメントに一致すると判定されたエフォートの関連データと共に格納される。
【００４７】
エフォートデータベース２０４は、ＧＰＳ情報およびタイムスタンプのセットとしてエフォートを格納するよう構成されている。例において、エフォートデータベース２０４は、１つのデータベースとして図示されているが、セグメントマッチングサーバは、エフォートを格納するための２以上のデータベースを含んでもよい。いくつかの実施形態において、エフォートデータベース２０４は、記録されてデバイス（例えばデバイス１０２）からアップロードされたエフォートを含む。エフォートデータベース２０４に格納されたエフォートは、少なくとも、ＧＰＳ情報、ＧＰＳ情報に対応するタイムスタンプ、および、エフォートの運動パフォーマンスに関係する測定値（例えば、関連データ）を含む。いくつかの実施形態において、タイムスタンプは、ＧＰＳ情報に含まれる（例えば、ＧＰＳ情報は、対応するタイムスタンプと共に緯度および経度の座標を含む）。いくつかの実施形態において、エフォートは、エフォートを実行したアスリート（例えば、デバイス１０２のユーザ）の識別子と共に格納される。いくつかの実施形態において、エフォートデータベース２０４の各エフォートは、それが一致すると判定されたセグメントデータベース２０２のセグメントの識別子と共に格納される。
【００４８】
定義エンジン２０６は、セグメントの定義を受信するよう構成されている。定義エンジン２０６は、ハードウェアおよび／またはソフトウェアで実装されてよい。いくつかの実施形態において、定義エンジン２０６は、（例えば、デバイスに）ユーザインターフェースを提示するよう構成されている。いくつかの実施形態において、ユーザインターフェースは、ユーザインターフェースに（例えば、デバイスによって記録された）エフォートの視覚的表現を表示する。いくつかの実施形態において、定義エンジン２０６は、地図サービス（例えば、地図の表示、表示された地図上の選択のＧＰＳ座標の受信、および／または、その他の地図サービス）を取得するためにＡＰＩを通してサードパーティの地図アプリケーション（例えば、Ｇｏｏｇｌｅ  Ｍａｐｓ、ＭａｐＱｕｅｓｔ）と相互作用するよう構成されている。スタートポイントおよびゴールポイントの選択が、ユーザインターフェースでなされ、定義エンジン２０６で受信される。次いで、定義エンジン２０６は、スタートポイントおよびゴールポイントによって区切られた経路をセグメントとしてセグメントデータベース２０２に格納する。いくつかの実施形態では、ユーザインターフェースによって表示された地図上の（例えば、一連の選択として示された）経路が、定義エンジン２０６で受信される。次いで、定義エンジン２０６は、地図上にマークされた経路をセグメントとしてセグメントデータベース２０２に格納する。いくつかの実施形態において、定義エンジン２０６は、セグメントを格納する前に抽象的な地理形態（例えば、最小外接矩形のセット）に変換する。
【００４９】
いくつかの実施形態において、定義エンジン２０６は、任意の既存のセグメントが新たに定義されたセグメントと類似するか否かを判定するために、新たに定義されたセグメントとセグメントデータベース２０２に格納されたセグメントとを比較するよう構成されている。いくつかの実施形態において、既存のセグメントが新たに定義されたセグメントに類似すると判定された場合、そのセグメントの作成者に既存のセグメントが存在する旨の警告が表示されてよい。いくつかの実施形態において、新たなセグメントの作成者は、類似したセグメントがすでに定義されているので、新たなセグメントを保存しないことを選択してもよい。
【００５０】
いくつかの実施形態において、定義エンジン２０６は、２以上のセグメントを含むグループが類似しているか否かを判定するために、セグメントデータベース２０２に格納されたセグメントを（例えば、定期的に）比較するよう構成されている。いくつかの実施形態において、類似すると判定されたセグメントについて、データベースに残すセグメントを１つだけ選択できる（例えば、デバイス１０２のようなデバイスを利用するユーザのコミュニティによる投票処理を用いてクラウドソーシングできる）ように、それらのセグメントが表示される。選択されないセグメントは、公開セグメントとして表示されないように余分なセグメントを除去または格下げすることによってスペースを解放するために、データベースから破棄されうる（ただし、投稿したユーザが私的に用いるために保持されてもよい）。いくつかの実施形態において、定義エンジン２０６は、類似したセグメントが、他のセグメントに完全に含まれるセグメントを含むことを決定するよう構成されている（すなわち、サブセグメントおよびスーパーセグメント）。いくつかの実施形態において、セグメントと、そのスーパーセグメントまたはサブセグメントとの間の関係が、セグメントデータベース２０２に記録される。
【００５１】
マッチングエンジン２０８は、（例えば、セグメントデータベース２０２の）１または複数のセグメントに一致するエフォートを決定するよう構成されている。いくつかの実施形態において、マッチングエンジン２０８は、エフォートデータベース２０４に格納されたエフォートにアクセスするよう構成されている。いくつかの実施形態において、（例えば、アップロードされたエフォートまたは地図上のマーキングに基づいて）セグメントのユーザ定義が行われた後に、マッチングエンジン２０８は、格納されたエフォートにアクセスして、新たに定義されたセグメントとマッチングする。例えば、ユーザ（例えば、サイクリスト）は、セグメントを定義し（そして、任意選択的に、他のユーザが見られるようにセグメントを公開して共有し）、その後、定義されたセグメントを辿った過去の活動（例えば、サイクリスト自身または他のサイクリストによる過去の走行）に関する情報を受信できる。いくつかの実施形態において、マッチングエンジン２０８は、セグメントデータベース２０４に格納されたセグメントにアクセスするよう構成されている。いくつかの実施形態において、受信されたエフォート（例えば、デバイス１０２によって送信されたエフォート）に応答して、マッチングエンジン２０８は、受信されたエフォートがセグメントデータベース２０２に格納されたいずれかのセグメントと一致するか否かを判定する。例えば、ユーザ（例えば、サイクリスト）は、最近記録されたエフォート（例えば、サイクリング）が１または複数のすでに定義されたセグメントを含むか否かをチェックできる。エフォートがセグメントを含むと判定された場合、セグメントの関連データ（例えば、運動パフォーマンスデータ）がアクセスされ、エフォートの関連データと比較される。このように、ユーザは、セグメントの開始または終了の場所を手動で決定する必要なしに、ユーザがセグメントを辿ったか否かを自動的にチェックできることにより、すでに定義されたセグメントから恩恵を受けうる。
【００５２】
いくつかの実施形態において、マッチングエンジン２０８は、（例えば、セグメントデータベースをクエリすることにより）格納済みのセグメントとのマッチングを実行する前に、エフォート（例えば、ＧＰＳ座標のセット）を、セグメントが格納されるのと同じ抽象形態（例えば、最小外接矩形のセット）に変換するよう構成されている。いくつかの実施形態において、エフォートと格納されたセグメントとの間のマッチングの実行に基づいて、２つのタイプの判定（例えば、エフォートが緩やかな一致である、エフォートが厳密な一致である）がなされうる。エフォートは、一致率が第１の閾値（例えば、６５％以上）を超える場合に、格納されたセグメントとの緩やかな一致であると判定されうる。いくつかの実施形態において、格納されたセグメントとの緩やかな一致であるエフォートは、記録された身体活動が、一致したセグメントと同じ経路をおおよそ辿ったことを意味しうる。一致率が第２の閾値（例えば、８０％）を超え、さらに、エフォートが格納済みのセグメントに関連付けられたスタートラインおよびゴールラインを横切る場合、そのエフォートは、格納されたセグメントとの厳密な一致であると判定されうる。いくつかの実施形態において、格納されたセグメントとの厳密な一致であるエフォートは、記録された身体活動が、一致したセグメントと同じ経路を厳密に辿ったことを意味しうる。様々な実施形態において、２つの判定（例えば、緩やかな一致および厳密な一致）について、一致率の決定は同じ方法で実行される。いくつかの実施形態において、エフォートは、１または複数のセグメントとの緩やかな一致であると判定されると共に、（同じまたは異なる）１または複数のセグメントとの厳密な一致であると判定されうる。例えば、エフォートは、セグメントとの緩やかな一致であると判定されると共に、同じセグメントとの厳密な一致であると判定されうる。別の例において、エフォートは、或るセグメントとの緩やかな一致かつ異なるセグメントとの厳密な一致であると判定されうる。いくつかの実施形態において、エフォートが緩やかな一致であるとの判定が、第１のデータベースに格納された１または複数のセグメントに対してなされ、エフォートが厳密な一致であるとの判定が、第２の異なるデータベースに格納された１または複数のセグメントに対してなされる。
【００５３】
いくつかの実施形態において、エフォートが（例えば、緩やかな一致または厳密な一致のいずれかとして）セグメントに一致すると判定された場合、セグメントの関連データ（例えば、セグメントに一致すると判定された格納済みのエフォートの関連データ）が、エフォートの関連データとの比較のためにアクセスされる。いくつかの実施形態において、複数の格納されたエフォートが、新たに定義されたセグメントに一致すると判定され、一致したセグメントの関連データがアクセス、集計、および、解析される。いくつかの実施形態において、マッチングエンジン２０８は、リトリーブされたデータに基づいて解析結果を生成するよう構成されている。いくつかの実施形態において、マッチングエンジン２０８は、解析結果をデバイス１０２に送信する（例えば、ユーザインターフェースに表示するために）。
【００５４】
例えば、ユーザは、セグメントを定義することができ、セグメントに一致する格納済みのエフォートすべてが集計および解析されて、最速タイムまたは最大仕事率でセグメントを辿ったユーザのリスト（すなわち、順位表）が生成されうる。別の例において、ユーザは、エフォートを生成することができ、セグメントマッチングサーバは、エフォートがいずれかの定義済みセグメントを辿ったか否かを判定できる。エフォートが定義済みのセグメントを辿ったと判定された場合、そのエフォートに関連付けられたデータが、定義済みのセグメントを辿ったと判定された全エフォートの履歴と比較されうる。このように、ユーザは、セグメント上での自分の運動パフォーマンスが、（そのセグメントによって代表される）同じ地理的経路を辿ったすべての他のエフォートと比べてどのようであるかを判断できる。さらに、ユーザは、セグメントが開始または終了する正確な場所を（例えば、ユーザが自転車に乗っている時に）知る必要はない。
【００５５】
いくつかの実施形態において、デバイス１０２は、セグメントデータベース２０２、エフォートデータベース２０４、定義エンジン２０６、および、マッチングエンジン２０８を備えてもよいし、デバイス１０２が（セグメントマッチングサーバ１０６と情報をやり取りする必要なしに）デバイス１０２で、セグメントを格納、エフォートを格納、セグメントを定義、および、セグメントに対してエフォートをマッチングできるように等価な機能を備えてもよい。いくつかの実施形態において、デバイス１０２のエフォートデータベースは、そのデバイスのユーザによって生成されたエフォートのみを含む。
【００５６】
図２Ｂは、いくつかの実施形態に従って、エフォートデータベースのテーブルに格納されたエフォートの一例を示す図である。いくつかの実施形態において、エフォートデータベース２０４に格納されるエフォートは、図２Ａの例と同様の方法で格納されうる。ただし、データベースのエフォートのテーブルは、例で示した列の数とは異なる数の列を含んでもよい。例において、各エフォートは、エフォートＩＤ、その一連のＧＰＳ情報（例えば、それぞれのタイムスタンプを有するＧＰＳ座標）、エフォートを記録したユーザに関連付けられた識別子、エフォートが記録された日付、ならびに、速度（ｋｍ／ｈ）、心拍数（１分間あたり）、仕事率（ワット）、および、タイム（時：分）などの関連データと共に格納される。いくつかの実施形態において、エフォートがセグメントと比較される時、エフォートのＧＰＳ情報（例えば、タイムスタンプを有する一連のＧＰＳ座標）が、アクセスされて、比較に用いられる。いくつかの実施形態において、エフォートがセグメントに一致すると判定されると、エフォートの関連データ（例えば、速度、心拍数、仕事率、タイム、標高、勾配）が、セグメントに一致するその他のエフォート（もしあれば）の関連データと共に集計される。次いで、集計されたデータは、（例えば、集計データをまとめた表示を生成するために）解析される。
【００５７】
図３は、いくつかの実施形態に従って、セグメントマッチングのための処理の一実施形態を示すフローチャートである。いくつかの実施形態において、処理３００は、システム１００で実施される。
【００５８】
工程３０２では、セグメントが定義される。いくつかの実施形態において、セグメントは、ユーザがユーザインターフェースで、エフォート（例えば、タイムスタンプを有する一連のＧＰＳ情報）の視覚的表現に沿ってスタートポイントおよびゴールポイントを選択することによって定義される。いくつかの実施形態において、エフォートは、ＧＰＳ追跡機能を備えたデバイスによって記録される。いくつかの実施形態において、セグメントは、ユーザがユーザインターフェースで、（例えば、Ｇｏｏｇｌｅ  Ｍａｐｓなどサードパーティの地図ソフトウェアによってサポートされた）地図上で一連のポイントを選択することによって定義される。いくつかの実施形態において、セグメントは、地理的経路の既知の特徴（例えば、標高および平均勾配）を用いて、（例えば、セグメントマッチングサーバの管理者によって）定義される。定義されたセグメントは、１または複数のデータベースに格納される。いくつかの実施形態において、定義されたセグメントは、抽象形態（例えば、最小外接矩形のセット）に変換され、抽象形態で格納される。いくつかの実施形態において、セグメントが格納されるデータベースは、Ｒ木インデックスに基づいて組織化される。
【００５９】
工程３０４では、セグメントに一致するエフォートが決定される。いくつかの実施形態において、定義されたセグメントについて、格納されたエフォートに関する情報がアクセスされ、セグメントと比較される。いくつかの実施形態において、エフォートは、タイムスタンプと共に（そして、運動パフォーマンスの様々な測定値などの関連データと共に）ＧＰＳ情報のセットとして格納される。いくつかの実施形態において、格納済みエフォートのＧＰＳ情報がアクセスされ、比較の前にセグメントと同じ形態（例えば、最小外接矩形）に変換される。いくつかの実施形態において、格納済みエフォートは、セグメントに一致する格納済みエフォートのサブセットを決定するために、セグメントと比較される。セグメントに一致すると判定された格納済みエフォートのサブセットの関連データが（例えば、エフォートを格納しているのと同じデータベースから）取得され、集計される。集計された関連データは解析され、いくつかの実施形態において、解析結果は、表（例えば、順位表）および／または画像で提示される。
【００６０】
図４は、いくつかの実施形態に従って、エフォートに基づいてセグメントを定義する処理の一実施形態を示すフローチャートである。いくつかの実施形態では、処理４００は、システム１００を用いて実施されうる。いくつかの実施形態において、処理４００は、工程３０２を実行するために用いられてよい。
【００６１】
工程４０２では、エフォートの視覚的表現が提示される。いくつかの実施形態において、エフォートは、ＧＰＳ追跡機能を備えたデバイスによって記録されたタイムスタンプを伴う一連のＧＰＳ情報である。いくつかの実施形態において、視覚的表現はユーザインターフェースで提示される。例えば、ＧＰＳ座標は、（例えば、Ｇｏｏｇｌｅ  Ｍａｐｓなどの地図アプリケーションによってサポートされた）地図上の実線または一連のマーカとして表示されうる。いくつかの実施形態では、一連のＧＰＳ情報が１セットの離散的な地理的座標である場合でも、実線の形態の視覚的表現を生成する際に、２つの座標間のポイントを推定することができる。
【００６２】
例えば、ユーザ（例えば、サイクリスト）が、サイクリングを終えて、その走行の少なくとも一部をセグメントとして指定したいと思う。このように、そのサイクリストまたは他のサイクリストが、セグメントによって参照された地理的経路でのパフォーマンスを追跡および比較することができる。
【００６３】
工程４０４では、スタートポイントの選択が受信される。いくつかの実施形態において、ユーザは、セグメントのスタートポイントとして、ユーザインターフェースにおいて視覚的表現に沿ってポイントを選択する。いくつかの実施形態において、選択されたポイントが、そのエフォートで２回以上通過されている場合、選択されたスタートポイントを通過した回数の各々をエフォートに沿って示すように、表示が生成される。次いで、ユーザは、ユーザがスタートポイントとしたい所望の事例に対応する回数を選択してよい。いくつかの実施形態において、選択されたスタートポイントは、それに対応するＧＰＳ座標（例えば、地図アプリケーションに関連付けられたＡＰＩによって返された座標）として格納される。いくつかの実施形態において、選択されたスタートポイントは、エフォートの選択されたスタートポイントおよびその他の１または複数のポイントに基づいて得られたた仮想のスタートラインと共に格納される。
【００６４】
前の例に戻ると、サイクリストは、セグメントのスタートポイントとして指定するために、自分の走行に沿ったポイントを選択できる。スタートポイントは、セグメント全体のスタートポイントにある必要はなく、走行に沿った任意のポイントであってよい。スタートポイントは、レースのためのスタートラインと考えることができる。別のサイクリストが（または、同じサイクリストが、異なる機会に）、セグメントを走行したか否かを後に判定する時に、後の走行（すなわち、エフォート）がスタートポイントを通過したか否かが判定される。
【００６５】
工程４０６では、ゴールポイントの選択が受信される。いくつかの実施形態において、ユーザは、セグメントのゴールポイントすなわち終点として、ユーザインターフェースにおいて視覚的表現に沿ってポイントを選択する。様々な実施形態において、ゴールポイントを選択して格納するための技術は、スタートポイントに用いられるものと同じである。例えば、選択されたゴールポイントは、それに対応するＧＰＳ座標として、および／または、得られた仮想ゴールラインと共に格納されうる。
【００６６】
例に戻ると、サイクリストは、セグメントのゴールポイントとして指定するために、自分の走行に沿ったポイントを選択できる。ゴールポイントは、その走行のまさに最後である必要はなく、スタートポイントの後の任意のポイントであってよい。ゴールポイントは、レースのためのゴールラインと考えることができる。別のサイクリストが（または、同じサイクリストが、異なる機会に）、セグメントを走行したか否かを後に判定する時に、後の走行（すなわち、エフォート）がゴールポイントも通過したか否かが判定される。いくつかの実施形態において、定義されるセグメントがループを含む場合、選択されたスタートポイントおよびゴールポイントは、同じセットのＧＰＳ座標でありうる。
【００６７】
工程４０８では、定義されたセグメントは、任意選択的に格納される。いくつかの実施形態において、定義されたセグメントが、（例えば、セグメントデータベースなど、事前定義および／またはユーザ定義されたセグメントを含むデータストア内の）既存のセグメントと類似していると判定された場合、ユーザは対応する表示によってプロンプトされる。いくつかの実施形態において、ユーザは、既存のセグメントを見直す、および／または、既存の重複するセグメントに照らして、新たに定義されたセグメントを破棄する選択をすることができる。ユーザが新たに定義されたセグメントを破棄すると選択した場合、ユーザは、自分のエフォートを既存のセグメントと関連付けて、エフォートに関連付けられたデータを既存のセグメントと共に格納することを選択できる。いくつかの実施形態において、ユーザの定義したセグメントが既存のセグメントと一致する場合、一致した既存のセグメントが、（例えば、セグメントデータベースなど、事前定義および／またはユーザ定義されたセグメントを含むデータストアに）すでに格納されている。既存の類似するセグメントがない場合、または、重複の可能性があるにもかかわらず新たに定義されたセグメントをいずれにせよ格納することを選択した場合、新たに定義されたセグメントが格納される。いくつかの実施形態において、セグメントは、抽象形態（例えば、最小外接矩形のセット）に変換され、格納される。いくつかの実施形態において、新たに定義されたセグメントは、名称ならびに／もしくは（例えば、ユーザによって選択された）１または複数のタグと共に保存されうる。いくつかの実施形態において、格納されたエフォートは、このセグメントに対してマッチングするためにアクセスされる。一致するエフォートが見いだされた場合、一致するエフォートに関連付けられたデータが結合および比較される。
【００６８】
例に戻ると、サイクリストは、ユーザインターフェースを用いて、セグメントを作成することができる。サイクリストは、セグメント名を「Ｏｌｄ  Ｌａ  Ｈｏｎｄａ」と入力して、セグメントを、そのセグメントが存在する道路の名称と関連付けることもできる。サイクリストは、（例えば、セグメントマッチングによって決定された）「Ｏｌｄ  Ｌａ  Ｈｏｎｄａ」で行われた過去の走行についてのフィードバックを受信することもできる。フィードバックは、どのユーザがセグメント上で走行したか、いつ誰が最速タイムを記録したか、誰がセグメントの完了時に最大量のエネルギを費やしたか、などである。また、サイクリストは、「Ｏｌｄ  Ｌａ  Ｈｏｎｄａ」での自身のパフォーマンスが過去の走行と比較してどの程度であるかを見ることができる（例えば、ユーザのパフォーマンスがそのセグメントでの走行の履歴の中でどこに順位付けされるか）。また、後続ユーザは、セグメントデータベースでの検索をサポートするユーザインターフェースで「Ｏｌｄ  Ｌａ  Ｈｏｎｄａ」と入力することによって、このセグメントを検索することができる。さらに、後続ユーザは、走行を記録し、一致するセグメントがあるかチェックするためにその走行を送信することによって、「Ｏｌｄ  Ｌａ  Ｈｏｎｄａ」を走行したことがあるか否かをチェックすることができる。走行が「Ｏｌｄ  Ｌａ  Ｈｏｎｄａ」セグメントを含むと（例えば、セグメントマッチングによって）判定された場合、そのセグメントでの走行中の後続ユーザのパフォーマンスを、そのセグメントを走行したことがある他のユーザのパフォーマンスの履歴と比較することができる。
【００６９】
図５は、いくつかの実施形態に従って、エフォートに基づいてセグメントを定義するためのユーザインターフェースの一例を示す図である。いくつかの実施形態において、工程４０２は、図５の例を用いて実施される。図の例において、地図上に配置された濃い線は、例えば、ＧＰＳデバイスによって記録されたエフォート（例えば、タイムスタンプを伴う一連のＧＰＳ情報）から描画された視覚的表現５０２である。例に示すように、セグメントが選択されるエフォートの名称は、「Ｅａｓｙ  Ｒｉｄｅ  ａｒｏｕｎｄ  Ｌａｋｅ  Ｆａｉｒｌｅｙ」として領域５０４に示されている。いくつかの実施形態において、ユーザインターフェースで用いられる地図は、Ｇｏｏｇｌｅ  Ｍａｐｓなどの地図アプリケーションによってサポートされる。地図アプリケーションとは、関連ＡＰＩを通して相互作用できる。
【００７０】
図６は、いくつかの実施形態に従って、セグメントのスタートポイントの選択を示すユーザインターフェースの一例を示す図である。いくつかの実施形態において、工程４０４は、図６の例を用いて実施される。例に示すように、視覚的表現５０２を示す地図は、スタートポイントが選択される領域にズームインされる。いくつかの実施形態において、スタートポイントは、地図の位置をクリックすることによって選択できる。例に示すように、マーカ６０２が、エフォートに沿って選択されたスタートポイントを示す。例に示すように、選択されたスタートポイントは、エフォートに沿って異なる機会に３回通過されている（６０４、６０６、および、６０８）。ユーザは、スタートポイントとして設定されるのに望ましい回を選択するようプロンプトされる。いくつかの実施形態において、定義されたセグメントの長さはスタートポイントおよびゴールポイントの間のエフォートの長さに基づいて決定されるので、ユーザは、複数の可能なスタートポイントのうちの１つを選択するようプロンプトされる。いくつかの実施形態において、選択されたスタートポイントは、ＧＰＳ座標のセットとして格納される。いくつかの実施形態において、選択されたスタートポイントは、スタートポイントから部分的に得られた仮想スタートラインと共に格納される。
【００７１】
図７は、いくつかの実施形態に従って、セグメントのゴールポイントの選択を示すユーザインターフェースの一例を示す図である。いくつかの実施形態において、工程４０６は、図７の例を用いて実施される。いくつかの実施形態では、ゴールポイントが選択され、スタートポイントに用いたのと同じ技術によって格納される。例に示すように、マーカ７０３は、セグメントの選択されたゴールポイント（例えば、終点）を示す。いくつかの実施形態において、選択されたゴールポイントは、ＧＰＳ座標のセットとして格納される。いくつかの実施形態において、選択されたスタートポイントは、部分的にスタートポイントから得られた仮想ゴールラインと共に格納される。
【００７２】
図８は、いくつかの実施形態に従って、地図上の一連の選択を用いてセグメントを定義するためのユーザインターフェースの一例を示す図である。いくつかの実施形態において、図の例は、工程３０２を実行するために用いることができる。いくつかの実施形態において、セグメントは、ユーザインターフェースの地図上で選択を直接行うことによって定義できる。図５、図６、および、図７で示したようなセグメント定義技術とは対照的に、図８の例のセグメント定義技術は、記録されたエフォートを必要としない。例に示すように、ユーザは、セグメントを示すために地図上の経路（例えば、「Ｍｏｎｔｅｂｅｌｌｏ  Ｒｄ」）に沿って順番にマーカ８０２ないし８１８をドロップした。マーカ８０２から８１８の地理的情報のセットは、地図アプリケーション（例えば、Ｇｏｏｇｌｅ  Ｍａｐｓ）から取得され、セグメントとして格納されうる。いくつかの実施形態において、セグメントのために最初にドロップされたマーカがスタートポイントとみなされ、最後にドロップされたマーカがゴールポイントと見なされる。
【００７３】
図９は、いくつかの実施形態に従って、一連のＧＰＳ情報を最小外接矩形（ＭＢＲ）に変換する一実施形態を示すフローチャートである。いくつかの実施形態において、一連のＧＰＳ情報（例えば、地図アプリケーションによってサポートされた地図上の一連の選択に対して、記録されたエフォートに基づいてセグメントを定義するために用いられる）は、１セットの最小外接矩形（ＭＢＲ）に変換され、セグメントに対して格納される。いくつかの実施形態において、一連のＧＰＳ情報は、ＭＢＲのセットに変換され、ＭＢＲのセットとして格納されたセグメントのＲ木インデックス化データベースにクエリするために用いられる。
【００７４】
一連のＧＰＳ情報を１セットのＭＢＲに変換する理由の１つは、様々な実施形態において、ＭＢＲを用いて、ＭＢＲのＲ木（Ｒツリー）インデックス化データベースに対して効率的な境界ボックスクエリを実行できることである。いくつかの実施形態において、（例えば、定義されたセグメントに対する）Ｒ木データベースのクエリのための検索入力は、（例えば、エフォートに関連付けられた）ＭＢＲであり、クエリは、入力されたＭＢＲと重複する（例えば、セグメントに関連付けられた）ＭＢＲを返す。いくつかの実施形態において、エフォートがセグメントと類似する（例えば、一致する）か否かは、境界ボックスクエリを用いて見いだされたそれらのＭＢＲの重複の程度に依存する。いくつかの実施形態において、或るセグメントが別のセグメントと類似するか否かも、それらのＭＢＲの重複の程度に依存する。
【００７５】
工程９０２では、一連のＧＰＳ情報が、１セットのタイル上にマッピングされる。いくつかの実施形態において、一連のＧＰＳ情報は、ＧＰＳ追跡機能を備えるデバイスによって記録されたエフォートに由来する。いくつかの実施形態において、一連のＧＰＳ情報は、（例えば、ユーザインターフェースで定義された）セグメントに対応する。
【００７６】
ユニバーサルタイリング（ｕｎｉｖｅｒｓａｌ  ｔｉｌｉｎｇ）の周知の技術を用いて、関心のある地理的領域を略均一なタイルに分割する。例えば、各タイルは２０メートル四方であってよい。このユニバーサルタイリングスキームを一連のＧＰＳ情報に適用して、１セットの対応するタイルを生成する。例えば、ＧＰＳ座標を含む各タイル（および、２つのかかるタイル間の任意のタイル）が、タイルのセットに含まれる。いくつかの実施形態において、おおよそ同じ地域をカバーする任意の２つの地理的経路が、それぞれのＧＰＳ情報のセットに小さい違いがあっても、同じセットのユニバーサルタイル（ｕｎｉｖｅｒｓａｌ  ｔｉｌｅｓ）にマッピングされる。
【００７７】
工程９０４では、任意でタイルを埋めるためにタイルを追加し、連続するタイルのセットを含むＧＰＳポイント間の経路を提供する。例えば、２つの連続的なＧＰＳポイントが、隣接するタイルにマッピングされない場合、連続的なＧＰＳポイントをつなぐラインが横切った任意のタイルをタイルセットに追加することができる（例えば、拡張前にＧＰＳポイント間のタイルを埋めることができる）。
【００７８】
工程９０６では、任意でタイルのセットが拡張される。いくつかの実施形態において、タイルのセットは、ＧＰＳデータの差異を補償するために、隣接するタイルを含むように拡張されうる。例えば、工程９０２でにて成されたタイルセット内の各タイルに隣接する８つのタイルがまだ含まれていなければ、それらのタイルをタイルセットに含めることができる。ただし、タイルのセットは、その他の適切な方法で拡張することもできる。
【００７９】
工程９０８では、１セットのタイルは、１セットのＭＢＲにグループ化される。いくつかの実施形態において、セット内で互いに近いタイルが、１つのＭＢＲにグループ化される。いくつかの実施形態において、ＭＢＲの各寸法（例えば、高さ、幅）は、１または複数のタイル全体である。例えば、１セットのタイルを１セットのＭＢＲにグループ化するために、まず、そのセットのタイルを、１セットの重複しない長方形のボックスに結合する。１つのアプローチでは、水平方向に隣接するセルを結合して、幅が広くタイル１つ分の高さを有する１セットのボックスを生成する。次に、各ボックスが、下の行のボックスと比較され、同じ幅および水平位置を有するボックスがある場合には、それと結合される。結果として得られるボックスのセットが、所望のＭＢＲのセットである。ただし、１セットのタイルを１セットのＭＢＲにグループ化する方法は、この例だけに限定されない。
【００８０】
いくつかの実施形態において、各ＭＢＲは、（例えば、タイリングスキームでは）それぞれの４つの角の座標によって特定される。いくつかの実施形態において、ＭＢＲのセットは、セグメントのためのデータベースに格納される。例えば、セット内のＭＢＲは、Ｒ木インデックス化データベーステーブルの行に格納できる。セット内のＭＢＲは、それらが表すセグメントに関連付けられた識別子と共に格納されてもよい。
【００８１】
しかしながら、いくつかの実施形態において、セグメントは、（ＭＢＲに変換された後に格納されるのではなく）対応するセットのＧＰＳデータポイントとして格納されてもよい。
【００８２】
図１０Ａは、いくつかの実施形態に従って、一連のＧＰＳ情報を１セットのＭＢＲに変換する例を示す図である。いくつかの実施形態において、図１０Ａの例は、一連のＧＰＳ情報に処理９００を適用した結果である。図の例では、記録された自転車走行が、１セットのＧＰＳ座標を含んでおり、座標は小さい黒丸で示されている。ＧＰＳ座標を含むユニバーサルタイリングスキームの各タイルは、ＧＰＳ情報がマッピングされたタイルと、連続的なＧＰＳポイントをつなぐ線分が交差する（横切る）任意のタイルとを含むセット内に含まれる。図の例において、タイルのセットに含まれるタイルには、網掛けされている。セット内の各タイルに隣接する８つのタイルも、（以前にタイルが含まれていなかった場合には）拡張されたタイルセットに含められる。次いで、拡張されたセットのタイルは、４つのＭＢＲにグループ化される（ＭＢＲ１、ＭＢＲ２、ＭＢＲ３、および、ＭＢＲ４）。図の例において、各ＭＢＲは、黒く縁取りされている。各ＭＢＲは、４つの角を表す（例えば、タイリングスキームの）座標のセット（ｘ１、ｘ２、ｙ１、ｙ２）によって特定されうる。一連のＧＰＳ情報がセグメントを定義するよう意図されている場合、対応するセットのＭＢＲは、いくつかの実施形態において、セグメントの識別子と共にＲ木インデックス化データベースのテーブルに格納されうる。
【００８３】
図１０Ｂは、いくつかの実施形態に従って、セグメント情報を格納するためのデータベーステーブルのエントリの一例を示す図である。いくつかの実施形態において、データベースは、Ｒ木インデックス化データベースである。例えば、データベースは、ＭｙＳＱＬ、Ｏｒａｃｌｅ、または、Ｐｏｓｔｇｒｅｓであってよい。いくつかの実施形態において、図１０Ｂの例は、図１０Ａの例で作成された格納済みのＭＢＲのセットを含む。いくつかの実施形態において、セグメントデータベース内の各セグメントは、英数字の識別子と共に格納される。図１０Ａの例が、「Ｏｌｄ＿Ｌａ＿Ｈｏｎｄａ」という識別子を有するセグメントのために１セットのＭＢＲを作成したとする。図１０Ｂの例に示すように、各ＭＢＲは、そのセグメント識別子、その４つの座標、および、占有率と共に格納される。図の例において、占有率とは、セグメントに関連付けられたタイルの数に対する、セグメントに関連付けられＭＢＲに含まれたタイルの数の比である。いくつかの実施形態において、占有率は、百分率で表されてもよい。例えば、図１０Ａに示すように、２６の網掛けのタイル、すなわち、セグメント「Ｏｌｄ＿Ｌａ＿Ｈｏｎｄａ」に関連付けられた２６のタイルがある。これら２６のタイルの内の６がＭＢＲ１に含まれているため、データベース内のＭＢＲ１の占有率エントリは、「６／２６」である。
【００８４】
図１０Ｂの例は、セグメントについて４つのエントリ（セット内の各ＭＢＲについてのエントリ）しか含んでいないが、実際のセグメントは、経路の長さに応じて、データベースに数千のエントリを含みうる。いくつかの実施形態において、セグメント情報を格納するためのデータベースのエントリは、図１０Ｂの例に示したのと異なる数の列を含んでもよい。いくつかの実施形態において、データベースに格納されたセグメントの情報セットは、すべてのエフォート（例えば、エフォートデータベースからのエフォート）と、セグメントに一致すると判定されたエフォートの関連データと、を含む。そうすれば、セグメントがデータベースからリトリーブされる時に、運動パフォーマンス（例えば、一致したエフォートおよびそれらの関連データによって表される）にも迅速にアクセスすることができる。
【００８５】
図１１Ａは、いくつかの実施形態に従って、セグメントデータベースで一致するセグメントを検索する処理の一実施形態を示すフローチャートである。
【００８６】
いくつかの実施形態では、セグメントが、Ｒ木インデックス化データベース内にＭＢＲのセットとして格納される。いくつかの実施形態では、セグメントが、データベース内にＧＰＳデータポイントのセットとして格納される。
【００８７】
いくつかの実施形態において、クエリ入力（例えば、一連のＧＰＳデータポイントによって表された地理的経路）が、セグメントデータベースの定義済みセグメントに一致するか否かを判定するために、セグメントデータベースに対してクエリが実行される。本明細書で用いられているように、一連のＧＰＳ情報（例えば、エフォートに属するもの）と、別の一連のＧＰＳ情報（例えば、セグメントに属するもの）との一致率が、特定の閾値を超えた場合に、それらのＧＰＳ情報が一致するものとする。
【００８８】
工程１１０２では、必要に応じて、一連のＧＰＳ情報が変換される。いくつかの実施形態において、一連のＧＰＳ情報は、エフォート（例えば、ＧＰＳを備えたデバイスによって記録されたエフォート）から抽出される。いくつかの実施形態において、ＧＰＳ情報は、一連の連続的なＧＰＳデータポイントである。いくつかの実施形態において、セグメントは、１セットのＭＢＲなど抽象形態で格納される。セグメントがＭＢＲのセットとして格納される場合、一連のＧＰＳ情報も１セットのＭＢＲに変換される。いくつかの実施形態では、セグメントがＧＰＳデータポイントのセットとして格納されるので、ＧＰＳ情報は別の形態に変換される必要はない。
【００８９】
工程１１０４では、ＧＰＳ情報を用いて、セグメントデータベースへのクエリが行われる。いくつかの実施形態において、データベースのクエリは、一連のＧＰＳ情報に類似したセグメントの部分（例えば、ＧＰＳデータポイント、ＭＢＲ）を返す。
【００９０】
いくつかの実施形態において、セグメントは、Ｒ木インデックス化データベースにＭＢＲのセットとして格納される。例えば、データベースで検索を行うために、ＧＰＳ情報から変換されたＭＢＲを用いて、Ｒ木インデックス化データベースに対して境界ボックスクエリを実行する。クエリは、入力されたＭＢＲと重複するＭＢＲを返す。重複するＭＢＲは、類似していると考えられる。重複するＭＢＲについて、データベースのテーブル（例えば、図１０Ｂのテーブル１０００）から、それぞれのエントリが返されうる。テーブル１０００を参照して、この例で、ＭＢＲ１、ＭＢＲ２、および、ＭＢＲ３（いずれもセグメント「Ｏｌｄ＿Ｌａ＿Ｈｏｎｄａ」に属する）が、重複すると判定されたと仮定する。したがって、それらのエントリの解析（例えば、入力されたＭＢＲのセットがセグメント「Ｏｌｄ＿Ｌａ＿Ｈｏｎｄａ」に一致するか否かを判定するための解析）を実行できるように、ＭＢＲ１、ＭＢＲ２、および、ＭＢＲ３のそれぞれの行が返されうる。いくつかの実施形態では、２以上のセグメントに関連付けられた重複ＭＢＲが返されてもよい。
【００９１】
いくつかの実施形態において、セグメントは、データベースにＧＰＳデータポイントのセットとして格納される。類似する一連のＧＰＳデータポイントを（例えば、許容範囲内で）決定するための様々な検索技術を用いて、データベースで類似のセグメントを見つけることができる。かかる技術の一例では、データベースの各ＧＰＳデータポイントは、選択された長さ（例えば、５０メートル）の半径で示される許容領域を含むと仮定される。一連のＧＰＳ情報に含まれる各ポイントも、選択された長さ（データベースのポイントの半径と同じ長さでありうる）の半径で示される許容領域を含むと仮定される。結果として、各ＧＰＳデータポイントは、円の中の領域に広がるものとして考えることができる。続いて、一連のＧＰＳ情報内の各ポイントの円形領域を用いて、データベースで（セグメントに関連付けられた）ＧＰＳデータポイントに関連付けられた重複する円を検索する。いくつかの実施形態では、重複する円に対応するデータベースのＧＰＳデータポイントが返されうる。いくつかの実施形態では、２以上のセグメントに関連付けられたＧＰＳデータポイントが返されてもよい。
【００９２】
いくつかの実施形態において、一連のＧＰＳデータポイントを用いて類似のセグメントを検索するには、ＭＢＲおよびＲ木インデックス化データベースを用いるのに必要とされるよりも多くの計算時間および／または資源が必要で或る。
【００９３】
工程１１０６では、クエリ結果が解析される。いくつかの実施形態において、クエリ結果は、一連のＧＰＳ情報がデータベースのセグメントに一致するか否かを判定するために用いられる。いくつかの実施形態において、一連のＧＰＳ情報と、返された１または複数のセグメント（の部分）との間の一致率を決定するために、計算が実行される。
【００９４】
いくつかの実施形態において、セグメントがＭＢＲとして格納された場合、一致率は、返されたＭＢＲを用いて決定される。いくつかの実施形態において、一連のＧＰＳ情報とセグメントとの一致率は、セグメントの重複したＭＢＲの数の、セグメントのＭＢＲの総数に対する比に基づいて計算される。一致率が閾値を超えた場合、一連のＧＰＳ情報によって表された地理的経路は、そのセグメントに一致すると見なされる。いくつかの実施形態において、一連のＧＰＳ情報とセグメントとの類似度は、返されたＭＢＲの占有率の合計に基づいて計算される。占有率の合計が閾値を超えた場合、一連のＧＰＳ情報によって表された地理的経路は、そのセグメントに一致すると見なされる。いくつかの実施形態において、（例えば、工程１１０４において）クエリの結果として返されたＭＢＲは、データベースのテーブルからの行をそれぞれ含む。図１０Ｂのテーブルを参照して、この例で、ＭＢＲ１、ＭＢＲ２、および、ＭＢＲ３（いずれもセグメント「Ｏｌｄ＿Ｌａ＿Ｈｏｎｄａ」に属する）が、重複すると判定されたと仮定する。したがって、ＭＢＲ１、ＭＢＲ２、および、ＭＢＲ３のそれぞれの行が返される。この例において、一連のＧＰＳ情報と「Ｏｌｄ＿Ｌａ＿Ｈｏｎｄａ」セグメントとの類似度は、重複したＭＢＲの占有率の合計に基づいて計算される。ＭＢＲ１、ＭＢＲ２、および、ＭＢＲ３が重複しているので、それぞれの占有率の合計（すなわち、６／２６＋４／２６＋１０／２６）は、２０／２６すなわち約７６．９％である。一致率の閾値が６５％である場合、一連のＧＰＳ情報は、「Ｏｌｄ＿Ｌａ＿Ｈｏｎｄａ」セグメントに一致すると見なされる。いくつかの実施形態において、２以上のセグメントについてＭＢＲが返されてもよく、それらのセグメントの各々に対する類似度が決定されうる。
【００９５】
いくつかの実施形態において、セグメントがＧＰＳデータポイントのセットとして格納される場合、一致率は、クエリによって返されたＧＰＳデータポイントの数に基づいて決定される。いくつかの実施形態では、クエリによって返されたＧＰＳデータポイントの数の、セグメントに関連付けられたＧＰＳデータポイントの総数に対する比が、特定の閾値を超える場合、一連のＧＰＳ情報によって表された地理的経路は、セグメントに一致すると見なされる。いくつかの実施形態において、２以上のセグメントについてＧＰＳデータポイントが返されてもよく、それらのセグメントの各々に対する一致率が決定されうる。
【００９６】
いくつかの実施形態において、一連のＧＰＳ情報の間の一致率が閾値（例えば、６５％）を下回った場合、地理的経路は、セグメントに一致しないと見なされる。いくつかの実施形態では、複数の閾値が存在し、それらの閾値内で、一連のＧＰＳ情報がセグメントに一致しうる。いくつかの実施形態において、一連のＧＰＳ情報は、低い方の閾値（例えば、６５％から７９％の間）でセグメントに一致すると、セグメントの穏やかな一致と見なされうる。いくつかの実施形態において、一連のＧＰＳ情報は、高い方の閾値（例えば、８０％から１００％の間）でセグメントに一致すると、セグメントの厳密な一致の候補と見なされうる。いくつかの実施形態において、セグメントの厳密な一致と見なされるには、一連のＧＰＳ情報は、高い方の閾値でセグメントに一致するだけではなく、セグメントの仮想のスタートラインおよびゴールラインを横切る必要がある。一連のＧＰＳ情報が、セグメントへの緩やかな一致であると見なされた場合、そのＧＰＳ情報に関連付けられた地理的経路（例えば、エフォート）が、セグメントによって参照された経路を厳密には辿っていないことを意味する。例えば、セグメントによって区切られた一般的な地形に沿ってのんびりとサイクリングをするつもりのサイクリストは、正確なセグメントから少し逸脱しうる。一連のＧＰＳ情報が、セグメントへの厳密な一致であると見なされた場合、そのＧＰＳ情報に関連付けられた地理的経路が、セグメントによって参照された経路を厳密に辿ったことを意味する。例えば、自身の記録または他人のパフォーマンスに対して、セグメントを横切るタイム（または、別のパフォーマンス測定値）を競うつもりのサイクリストは、セグメントによって区切られた領域をより厳密に辿る必要がある。また、タイムを競う目的のサイクリストは、セグメントの（一部だけではなく）全長を走ることを保証するために、セグメントの仮想のスタートラインおよびゴールラインを横切る必要がある（もしくは、セグメントがループを形成する場合には、ループセグメントに入ったエントリポイントをもう一回通過する必要がある）。
【００９７】
図１１Ｂは、いくつかの実施形態に従って、エフォートをセグメントに対してマッチングする一実施形態を示すフローチャートである。いくつかの実施形態において、処理１１５０は、いくつかの実施形態に従った工程１１０６を実行するために用いられる。    
【００９８】
処理１１５０の開始時に、工程１１０４がすでに実行されており、クエリが、セグメントの類似部分（例えば、与えられた許容範囲内の重複したＭＢＲまたはＧＰＳデータポイント）を返したとする。
【００９９】
いくつかの実施形態において、エフォートをセグメントに対してマッチングする処理は、工程１１５２を含み、工程１１５４（緩やかな一致の決定）の後に終了し、厳密な一致の決定を含まない。いくつかの実施形態において、エフォートをセグメントに対してマッチングする処理は、工程１１５５から１１６０（厳密な一致の決定）を含むが、緩やかな一致の決定を含まない。いくつかの実施形態において、エフォートをマッチングする処理は、格納されたセグメントに対するエフォートの緩やかな一致および厳密な一致の両方の決定を含む。
【０１００】
工程１１５２では、エフォートとセグメントとの間の一致率が第１の閾値を超えるか否かが判定される。一致率が第１の閾値未満である（例えば、一致率が６５％未満である）場合、エフォートは、セグメントに一致しないと見なされ、処理１１５０は終了する。一致率が第１の閾値を超える（例えば、一致率が６５％を超える）場合、エフォートは、工程１１５４においてセグメントに対する緩やかな一致であると見なされ、制御は工程１１５５に進む。
【０１０１】
工程１１５５では、エフォートとセグメントとの間の一致率が第２の閾値を超えるか否かが判定される。一致率が第２の閾値を超える（例えば、一致率が８０％を超える）場合、エフォートは、セグメントに対する厳密な一致の候補であると見なされ、制御は工程１１５６に進む。一致率が第２の閾値未満である（例えば、一致率が６５％から７９％の間である）場合、エフォートは、厳密な一致ではない（緩やかな一致に過ぎない）と見なされ、処理は終了する。
【０１０２】
工程１１５６では、エフォートがセグメントのスタートラインおよびゴールラインを横切っているか否かが判定される。スタートラインおよびゴールラインの両方を横切っている場合、エフォートは、工程１１６０においてセグメントの厳密な一致であると見なされる。しかしながら、ラインの一方または両方を横切っていない場合、処理は終了し、エフォートは、厳密な一致ではない（緩やかな一致に過ぎない）と見なされる。
【０１０３】
いくつかの実施形態において、エフォートが、ループを形成するセグメント（例えば、ニューヨーク市のセントラルパーク）と比較される場合、ループセグメントには、スタートラインもゴールラインも作成されないので、工程１１５６は実行されなくてよい。代わりに、いくつかの実施形態において、ループセグメントの厳密な一致の候補と見なされたエフォートについて、エフォートが最初にループセグメントと交差した場所に関連付けられたエントリポイントが、まず決定される。次いで、エフォートが、ループセグメントの決定済みのエントリポイントを２回目に通過したと判定された場合、そのエフォートは、ループセグメントの厳密な一致であると見なされる。
【０１０４】
図１２は、いくつかの実施形態に従って、仮想スタートラインを作成する一例を示す図である。いくつかの実施形態では、定義されたセグメントに対して仮想スタートラインが作成される。いくつかの実施形態において、記録されたエフォートを用いてセグメントが（例えば、処理４００によって）定義されると、仮想スタートラインが、ＧＰＳ情報および選択されたスタートポイントから導出される。いくつかの実施形態において、セグメントがループを形成する場合、セグメントに対して、スタートラインもゴールラインも作成されない。
【０１０５】
図１２の例において、記録されたエフォートは、一連の連続的なＧＰＳ座標Ｐ１（ｔ０）、Ｐ２（ｔ１）、Ｐ３（ｔ２）、Ｐ４（ｔ３）、および、Ｐ５（ｔ４）で表されている。ポイントＰ１（ｔ０）は、Ｐ２（ｔ１）よりも早い時間に通過され、Ｐ２（ｔ１）は、Ｐ３（ｔ２）よりも早い時間に通過され、以下同様である。スタートポイントは、位置１２０２に選択されている。選択されたスタートポイントは、Ｐ１（ｔ０）の通過後かつＰ２（ｔ１）の通過前に配置されている。一連のＧＰＳ座標の内の次のＧＰＳ座標は、未通過のＰ２（ｔ１）なので、線形経路１２０８が、Ｐ２（ｔ１）から、選択されたスタートポイントまで引かれている。仮想スタートライン１２０６は、その中心が、選択されたスタートポイントおよびＰ２（ｔ１）の間の線形経路１２０８の中心と重なるような位置に選択される。この例において、仮想スタートライン１２０６は、９０度の角度で線形経路１２０８と交差しているが、他の角度で交差してもよい。仮想スタートラインの長さは、任意の適切な長さ（例えば、１００メートル）に設定されてよい。いくつかの実施形態において、仮想スタートラインは、それに関連付けられたセグメントと共にセグメントデータベースに格納されてよい。いくつかの実施形態において、仮想スタートラインは、ラインの両端の座標のみとして格納されてよい（例えば、２つの座標の間に直線を引くことによってラインを再現できるため）。いくつかの実施形態において、仮想スタートラインは、ラインに沿った密な一連の連続的なＧＰＳ座標として格納されてもよい。
【０１０６】
いくつかの実施形態において、ゴールラインが、前述の技術と同様に作成および格納されうる。
【０１０７】
いくつかの実施形態において、スタート（またはゴール）ラインは、エフォートの一連のＧＰＳ情報がラインと交わると判定されうる場合に横切られたと見なされる。例えば、一連のＧＰＳ情報が離散的なポイントで形成されている場合でも、２つの連続したポイントがラインの異なる側に存在するとわかれば、関連する経路が、ラインを横切っていると見なされる。いくつかの実施形態において、一連のＧＰＳ情報内の１つのポイントがラインに近い（例えば、与えられた距離以内である）とわかれば、対応する記録が示唆しなかったとしても、実際の身体活動が仮想ラインを横切ったか否かを判定するために、エフォートについて既知の関連データ（例えば、速度、勾配、心拍数）に基づいて、一連のＧＰＳ情報の補外を行うことができる。例えば、いくつかのＧＰＳ対応デバイスは、他と異なる頻度でＧＰＳ情報を記録する。したがって、用いた記録デバイスのタイプに応じて、記録されるＧＰＳ情報の間にいくらかの相違が生じうる。しかしながら、他の既知のデータに基づいてＧＰＳ情報を補外することにより、少なくとも一部の相違を補償して、実際にラインを横切ったアスリートがそれを認められることをより確実にすることができる。
【０１０８】
図１３は、いくつかの実施形態に従って、一致するエフォートを決定するための処理の一実施形態を示すフローチャートである。
【０１０９】
工程１３０２では、エフォートがセグメントと比較される。いくつかの実施形態において、セグメントは、すでに定義されている。いくつかの実施形態において、セグメントは、データベースに格納されている。いくつかの実施形態において、セグメントは、１セットのＭＢＲとして格納されている。いくつかの実施形態において、セグメントは、一連のＧＰＳデータポイントとして格納されている。いくつかの実施形態において、エフォートは、格納済みの過去のエフォートのデータベースから取得される。
【０１１０】
様々な実施形態において、エフォートは、一致率を決定するために、セグメントと比較される。いくつかの実施形態において、エフォートに関連するＧＰＳ情報が取得される（例えば、データベースから）。いくつかの実施形態において、セグメントが１セットのＭＢＲとして格納されている場合、エフォートのＧＰＳ情報も１セットのＭＢＲに変換され、その後に比較される。いくつかの実施形態において、セグメントが１セットのＧＰＳ情報として格納されている場合、エフォートのＧＰＳ情報は変換される必要がない。
【０１１１】
いくつかの実施形態において、一致率が閾値を超えた場合、エフォートは、セグメントに一致すると見なされる。いくつかの実施形態では、エフォートが、２つの異なるレベル（緩やかな一致および厳密な一致）でセグメントと一致しうる。エフォートが低い方の閾値でセグメントに一致した場合、そのエフォートは、緩やかな一致であると決定され、エフォートとセグメントとの間の地理的経路の類似度がより低いことが示唆される。エフォートが高い方の閾値でセグメントと一致し、さらに、エフォートがセグメントのスタートラインおよびゴールラインの両方を横切ると判定された（もしくは、セグメントがループを形成する場合には、エフォートがループセグメントへのエントリポイントを２回目に通過したと判定された）場合、そのエフォートは、厳密な一致である。いくつかの実施形態において、厳密な一致は、エフォート（の少なくとも一部）と、セグメントとの間の地理的経路の類似度が高いことを示す。いくつかの実施形態では、セグメントに一致するエフォートに関連付けられた識別子が、セグメントと共に格納される。いくつかの実施形態では、エフォートに一致するセグメントの識別子が、エフォートと共に格納される。
【０１１２】
工程１３０４では、セグメントと比較すべきさらなるエフォートがあるか否かが判定される。いくつかの実施形態では、格納されたエフォートすべてが、セグメントと比較される。いくつかの実施形態では、格納されたエフォートのサブセットのみが、セグメントと比較される。いくつかの実施形態では、セグメントと比較されたエフォートすべてが、１ユーザに関連している。いくつかの実施形態では、セグメントと比較されたエフォートは、２以上のユーザに関連している。
【０１１３】
工程１３０６では、一致したエフォートに関連するデータが集計される。いくつかの実施形態において、（例えば、緩やかな一致または厳密な一致として）セグメントに一致すると見なされたエフォートについて、それらの関連データ（例えば、心拍、速度、心拍数、仕事率、タイム）に（例えば、エフォートデータベースで）アクセスして集計する。例えば、集計されたデータは、別のデータベースに一時的に格納されてよい。
【０１１４】
工程１３０８では、集計されたデータが解析される。いくつかの実施形態では、一致したエフォートの集計済みデータを用いて、計算が実行される。例えば、平均心拍数、平均速度、平均タイム、平均仕事率、および／または、平均勾配が計算されうる。いくつかの実施形態において、各エフォートの関連データのセットは、一致したエフォートのソート済みリストを作成するために、他の各エフォートの関連データのセットと比較される（例えば、そのリストは、関連データの任意の１つの測定値に基づいてソートされうる）。例えば、ソートされたリストは、最速タイムから降順に並べたエフォートのリストを含みうる。もしくは、別の例において、ソートされたリストは、最高仕事率から昇順に並べたエフォートのリストを含みうる。例えば、ソートされたリストは、最近記録されたエフォートのリストを含みうる。いくつかの実施形態において、集計されたデータの解析結果が、（例えば、ユーザインターフェースに）表示されうる。表示は、表および／または画像を含みうる。
【０１１５】
図１４は、いくつかの実施形態に従って、一致したエフォートについて解析されたデータの表示の一例を示す図である。いくつかの実施形態において、図１４の例は、一致するエフォートが決定された選択済みのセグメントについて表示されている。言い換えると、セグメントにマッチングされた各エフォートは、各エフォートがセグメントによって参照された地理的経路を辿ったと見なされたことを示唆する。図１４の例は、（例えば、デバイスの）ユーザインターフェースに表示されうる。例において、エフォートに関連する身体活動はサイクリングであるため、各エフォートを走行と呼ぶこととする。セクション１４０２は、ユーザ、日付（Ｄａｔｅ）、心拍数（ＨＲ）、仕事率（Ｗａｔｔｓ）、および、タイム（Ｔｉｍｅ）を含む最近の走行（Ｌａｔｅｓｔ  Ｒｉｄｅｓ）のリストを含む。セクション１４０４は、タイムでソートされた走行のリストであり、セグメントを走り終えた最速タイムが最初にリストされている。セクション１４０４のリストは、「順位表」の一例である。
【０１１６】
地理的経路をセグメントとして定義することにより、その経路上での運動パフォーマンスの比較のために、セグメントを容易に参照することができる。いくつかの実施形態において、ユーザは、自分自身の身体活動から記録されたＧＰＳデータを用いてユーザインターフェースでセグメントを定義することができる。いくつかの実施形態において、ユーザは、地図上で選択を行うことにより、ユーザインターフェースでセグメントを定義することができる。どのようにセグメントが定義されても、いったん定義されると、身体活動（例えば、エフォート）の格納済みの履歴にアクセスして、セグメントとマッチングすることができる。一致するエフォートの関連データが集計され、セグメントに関連するすべての身体活動の全部または一部を表すテーブルまたは画像に提示されうる。いくつかの実施形態では、記録された活動が、定義されたセグメントを含むのか一致するのかを、同じユーザまたは別のユーザが、後にチェックすることができる。後のチェックにより、ユーザは、セグメントが開始または終了する場所を正確に知る必要なしに、自分の記録済みの活動を定義および格納済みのセグメントに対して自動的にマッチングできるという恩恵を受けうる。
【０１１７】
従来のシステムを用いて、ユーザのＧＰＳ位置およびユーザの他のデータポイントに基づいて解析を行っても、身体活動時の他のユーザとのリアルタイムなフィードバックの比較をサポートすることはできない。なぜなら、かかる解析は、以前は、ユーザのＧＰＳデバイスをコンピュータに接続できるまで実行できなかったからである。
【０１１８】
セグメントに関連する現行活動のリアルタイムなフィードバックを提供することが開示されている。様々な実施形態において、ユーザが、１または複数のセグメントに一致する現行活動（例えば、サイクリング、ランニング）を実行している間に、定義および格納されたセグメントを用いて、ユーザのためにリアルタイムでフィードバックを生成することができる。いくつかの実施形態において、「リアルタイム」は、ユーザが現行活動をまだ続けている間に、デバイスでユーザにフィードバックすなわち通信を提供することを含む（すなわち、フィードバックは、現行活動が継続している間に、ユーザに提供される）。様々な実施形態において、フィードバックは、フィードバックを求めるユーザによる入力を必要とすることなしに、ユーザの現行活動中に、ユーザに提供される。その代わり、いつ、どのイベントに応答して、どのタイプのコンテンツを、ユーザの活動中に提供するのかなどを示すパラメータが、ユーザによって、または、デフォルト設定によって設定されうる。フィードバックのタイプの例は、一致したセグメントでのそれまでのユーザの現在のパフォーマンスと、そのセグメントでのユーザ自身の履歴パフォーマンスデータまたは他のユーザの履歴パフォーマンスデータとの比較、近くのユーザおよび／またはセグメントの検出、ならびに、それまでのセグメントでのユーザのパフォーマンスに関するユーザ個人の成果の指摘を含みうる。結果として、ユーザは、活動を行っている最中に、セグメントのマッチング／発見または比較などを能動的に開始する必要なしに、一致した１または複数のセグメントでのユーザの現在のパフォーマンスに基づいたフィードバックと、一致したセグメントに関する他の情報とを享受することができる。例えば、身体活動中に、ユーザは、関心を持たないこともあるし、ユーザの現行活動に関するフィードバックの受信をユーザが手動で開始することが実際的ではない場合もある。
【０１１９】
図１５は、いくつかの実施形態に従って、セグメントに関連する現行活動中にリアルタイムのフィードバックを提供するためのシステムの一実施形態を示す図である。この例において、システム１５００は、デバイス１５０２、デバイス１５０４、ネットワーク１５０６、および、セグメントマッチングサーバ１５０８を備える。ネットワーク１５０６は、様々な高速データネットワークおよび／または遠隔通信ネットワークを含む。いくつかの実施形態において、システム１５００は、さらなる構成要素および／または機能に加えて、少なくともシステム２００の構成要素を備える。
【０１２０】
いくつかの実施形態において、ユーザは、身体活動を行う時に、デバイス１５０２およびデバイス１５０４の一方または両方を携帯することができる。例えば、一方または両方のデバイスが、ユーザの身体に身につけられてもよいし（例えば、ユーザの腕にストラップで固定）、身体活動中にユーザが用いる乗り物（例えば、自転車など）に取り付けられてもよい。
【０１２１】
デバイス１５０２およびデバイス１５０４の一方または両方が、位置情報（例えば、ＧＰＳデータ）および／または身体活動に関連するその他のデータ（例えば、速度、心拍数）を記録しうる。デバイス１５０２および／またはデバイス１５０４の例としては、ＧＰＳデバイス（例えば、Ｇａｒｍｉｎ  Ｆｏｒｅｒｕｎｎｅｒ  １１０、２０５、３０１、３０５、３１０ＸＴ、４０５、４０５ＣＸ、および、Ｇａｒｍｉｎ  Ｅｄｇｅ  ３０５、６０５、７０５、５００など、Ｇａｒｍｉｎ  ＦｏｒｅｒｕｎｎｅｒおよびＥｄｇｅデバイス）、ＧＰＳ記録アプリケーション（例えば、ＭｏｔｉｏｎＸ、Ｅｎｄｏｍｏｎｄｏ、および、ＲｕｎＫｅｅｐｅｒ）を備えたスマートフォン（例えば、ＡｎｄｒｏｉｄデバイスまたはＡｐｐｌｅ  ｉＰｈｏｎｅデバイス）などの携帯電話、コンピュータ、タブレットデバイス、および／または、その他の汎用コンピュータデバイスおよび／または専用コンピュータデバイスが挙げられ、それらは、通例、一般的なプロセッサと、メモリまたはその他のストレージ要素と、ネットワークまたは出入力（Ｉ／Ｏ）機能と、統合ＧＰＳ機能またはサポートもしくはＧＰＳデバイスまたはＧＰＳ機能のためのインターフェースと、を備える。
【０１２２】
いくつかの実施形態において、デバイス１５０２は、ネットワーク１５０６を介してリモートサーバ（セグメントマッチングサーバ１５０８など）とデータをやり取りする機能を備えるが、デバイス１５０４と通信する機能は備えない。例えば、デバイス１５０２は、Ｂｌｕｅｔｏｏｔｈ（登録商標）などの無線通信用の近距離プロトコルを用いて、または、有線接続を用いて、デバイス１５０４と通信することができる。かかる実施形態において、デバイス１５０４は、ネットワーク１５０６を介してセグメントマッチングサーバ１５０８とデータをやり取りする機能を備える。したがって、デバイス１５０２は、デバイス１５０４を介してセグメントマッチングサーバ１５０８とデータをやり取りすることができる。かかる実施形態について、デバイス１５０２は、ユーザの位置情報および／または身体活動に関連するその他のデータを記録した後に、記録した情報をデバイス１５０４に送信する非ネットワークデバイスであってよい。例えば、デバイス１５０４は、記録された情報をデバイス１５０２から（例えば、インストール済みのアプリケーションを用いて）受信した後に、記録された情報をセグメントマッチングサーバ１５０８に送信することができるネットワークデバイス（スマートフォンまたはタブレットデバイスなど）であってよい。さらに、セグメントマッチングサーバ１５０８から送信された情報（例えば、フィードバックデータ）が、デバイス１５０４によって受信され、次いで、デバイス１５０２に送信される。
【０１２３】
いくつかの実施形態において、デバイス１５０２は、ネットワーク１５０６を介してデータを送受信する機能を備えており（すなわち、１５０２はネットワークデバイスであり）、デバイス１５０４は、任意選択的にシステム内に含まれる。デバイス１５０２が、位置情報および／または身体活動に関連するその他のデータを記録して、ネットワーク１５０６を介してデータを送受信することができる実施形態において、デバイス１５０２は、デバイス１５０４を介することなしに、例えば、記録された情報をセグメントマッチングサーバ１５０８に送信し、例えば、記録された情報の解析結果をセグメントマッチングサーバ１５０８から受信することができる。
【０１２４】
身体活動に関連する情報を記録して、セグメントマッチングサーバ１５０８と通信するために、２以上のデバイス（上記の例に記載したデバイス１５０２およびデバイス１５０４の組み合わせなど）を利用できるが、図面および以下の説明では、例示のために、１つのデバイス（ネットワーク機能を有するデバイス１５０２）のみを用いて、情報を記録してセグメントマッチングサーバ１５０８と通信することについて記載する。
【０１２５】
様々な実施形態において、デバイス１５０２（または、そのアプリケーション）は、ユーザが身体活動を行う間に、位置情報（例えば、ＧＰＳデータ）、および／または、身体活動に関連するその他のデータを記録するよう構成される。いくつかの実施形態において、ユーザが現在行っている身体活動を、「現行活動」と呼ぶこととする。身体活動の例としては、サイクリング、ランニング、および、スキーが挙げられる。いくつかの実施形態において、ＧＰＳ情報は、一連の連続的かつ離散的なＧＰＳデータポイント（例えば、緯度および経度）を含み、各ポイントに対してタイムスタンプを備える。いくつかの実施形態において、関連データは、標高、心拍数、仕事率／ワット数（例えば、消費されたエネルギ）、タイム、速度（例えば、セグメントおよび／またはルートごとの平均および／または最大速度、例えば、平均速度はタイムおよびＧＰＳ情報から導出されうる）を含むが、これらに限定されない。いくつかの実施形態において、関連データの少なくとも一部を、「パフォーマンスデータ」と呼ぶこととする。関連データは、様々な粒度で記録されうる。例えば、関連データは、各ＧＰＳデータポイント、活動全体（例えば、関連データが測定値の平均を含む）、または、活動の一部に対応しうる。
【０１２６】
いくつかの実施形態において、身体活動時にデバイス１５０２を用いる前に、デバイス１５０２が身体活動の前または最中にセグメントマッチングサーバ１５０８とデータをやり取りする方法を決定するために、デバイス１５０２のパラメータ（または、デバイス１５０２のアプリケーションに関連するユーザのアカウント）が設定される。デバイス１５０２のパラメータ（または、デバイス１５０２のアプリケーションに関連するユーザのアカウント）は、ユーザによって、および／または、プリセット設定によって設定できる。いくつかの実施形態において、デバイス１５０２に関連するパラメータは、ユーザが身体活動を開始する前にデバイス１５０２でセグメントマッチングサーバ１５０８からどのデータを受信するのかを決定するために設定されてよい。いくつかの実施形態において、パラメータは、ユーザにとって関心のないデータをフィルタアウトしたり、ユーザにとって関心のあるデータのタイプを特定したりすることができる。例えば、身体活動の前にセグメントマッチングサーバ１５０８から取得されたデータは、デバイス１５０２にローカルに格納され（例えば、キャッシュまたはその他の方法で一時的に格納され）、身体活動中にデバイス１５０２によって記録された情報を処理するために利用されうる。いくつかの実施形態において、デバイス１５０２に関連するパラメータは、身体活動中にセグメントマッチングサーバ１５０８と、いつ（例えば、どのような頻度で）どのタイプのデータをやり取りするのかを決定するために設定されてもよい。デバイスおよび／またはユーザに関連するパラメータは、例えば、デバイス１５０２で設定されうる、および／または、他で設定されてデバイス１５０２にダウンロードされる。いくつかの実施形態では、設定されたパラメータのコピーも、セグメントマッチングサーバ１５０８に送信されて保持される。例えば、身体活動中にデバイス１５０２から送信するデータは、記録されたＧＰＳデータと、それまでのユーザの現行活動に関連するその他のデータとを含みうる。また、例えば、デバイス１５０２でセグメントマッチングサーバ１５０８から受信するデータは、デバイス１５０２から送信された記録済みのＧＰＳデータおよびその他のデータの処理に少なくとも部分的に基づいた様々なタイプのリアルタイムフィードバックを含む。いくつかの実施形態において、デバイス１５０２は、新しいおよび／または更新された記録済みの情報をセグメントマッチングサーバ１５０８に連続的（例えば、定期的）に送信し、セグメントマッチングサーバ１５０８は、更新されたフィードバックデータをデバイス１５０２に連続的に戻しうる。いくつかの実施形態において、フィードバックデータは、ユーザの現行活動に関連する記録済みの情報が一致または近似すると判定された１または複数のセグメントを含む。いくつかの実施形態において、フィードバックデータは、現行活動でのユーザのパフォーマンスと、ユーザの現行活動が一致すると判定された１または複数のセグメントについて格納された（例えば、そのユーザまたは他のユーザの）履歴または同時のパフォーマンス情報との比較結果を含む。いくつかの実施形態において、フィードバックデータは、他のユーザが行う同時の活動に関連する通知および招待、ならびに／もしくは、ユーザの個人的な成果の指摘を含む。上記以外のタイプのフィードバックデータが、デバイス１５０２で受信されてもよい。いくつかの実施形態では、デバイス１５０２で受信されたデータ（例えば、フィードバックデータ）の少なくとも一部が、画像、テキスト、および／または、オーディオビジュアルを用いて、リアルタイムでユーザに提示される。例えば、デバイス１５０２のユーザインターフェースが、フィードバックデータからの比較結果を表示して、デバイス１５０２の音声出力が、比較結果の読み上げを出力することができる。
【０１２７】
様々な実施形態において、セグメントマッチングサーバ１５０８は、セグメントマッチングサーバ１０６の機能と、さらなる機能とを有する。いくつかの実施形態において、セグメントマッチングサーバ１５０８は、デバイス１５０２から受信したＧＰＳデータが１または複数の定義されたセグメントと一致するか否かを判定するよう構成されている。例えば、セグメントマッチングサーバ１５０８は、それまでにデバイス１５０２から受信したＧＰＳデータの少なくとも一部がセグメントの少なくとも一部を横切る（例えば、ＧＰＳデータが、現行活動中のユーザがセグメントに関連する指定済みのスタートラインを横切ったことを示唆する）という判定に基づいて、受信したＧＰＳデータがセグメントに一致すると判定できる。いくつかの実施形態において、ユーザの現行活動について記録された位置情報がセグメントに一致すると判定された場合、そのユーザは、一致したセグメント上に存在する（すなわち、そのセグメントに沿って進んでいる）と推定される。いくつかの実施形態において、一致するセグメントが決定されると、セグメントマッチングサーバ１５０８は、ユーザの現行活動に基づいてデバイス１５０２から受信した現在のパフォーマンスデータとの比較に用いるために、一致したセグメントに関連する格納済みの履歴または同時パフォーマンスデータをリトリーブするよう構成されている。セグメントマッチングサーバ１５０８は、比較結果の少なくとも一部をフィードバックデータの一部としてデバイス１５０２に送信するよう構成されている。いくつかの実施形態において、セグメントマッチングサーバ１５０８は、それまでのユーザの現行活動に関する受信データに一致する１または複数のセグメントに少なくとも部分的に基づいて、他のタイプのフィードバック（例えば、他のユーザの同時進行の活動に関連する通知および招待、および／または、ユーザデータについての個人的な成果の指摘）を生成するよう構成されている。いくつかの実施形態において、セグメントマッチングサーバ１５０８は、セグメントマッチングを実行する、および／または、ユーザに関連して設定されたパラメータに基づいて、そのユーザのためのフィードバックデータを生成するよう構成される。いくつかの実施形態において、セグメントマッチングサーバ１５０８は、時間と共に更新されてデバイス１５０２から受信されるＧＰＳデータおよびその他の関連データに基づいて、生成されたフィードバックデータを更新するよう構成されている。
【０１２８】
図１６は、いくつかの実施形態に従って、ユーザが活動を行う間にシステム１５００を利用する様子を示す図である。例において、ユーザ１６００は、サイクリング活動を行っている。ユーザ１６００が、サイクリング中にシステム１５００のデバイス１５０２を利用していると仮定する。その活動を開始する前に、ユーザ１６００は、ユーザの関心に基づいて、リモートサーバにデータを送信してフィードバックデータを受信するか、または、活動中にデバイスでローカルにフィードバックを生成するか、セグメントとの一致、他のユーザ、比較のタイプなどに関するデバイス１５０２のパラメータをすでに設定している。ユーザ１６００は、経路に沿ってサイクリングしている時に、自分がセグメントに沿って進んでいるか否か、そして、セグメントがユーザ１６００のサイクリング経路に対してどこに位置しているかを知る必要はない。しかしながら、デバイス１５０２を用いれば、ユーザ１６００は、ユーザ１６００の活動中にデバイス１５０２にフィードバックを提示されうる。例えば、図に示すように、ユーザ１６００は、ユーザ１６００が現在どのセグメントを走っているのか（“Ｏｌｄ  Ｌａ  Ｈｏｎｄａ”）、および、ユーザ１６００が現在セグメントのどの場所にいるのか（「セグメント“Ｏｌｄ  Ｌａ  Ｈｏｎｄａ”の２５％に到達しました」）を示すフィードバックデータをデバイス１５０２で提示されうる。ユーザ１６００は、活動中にフィードバックを開始することも問い合わせることも必要なしに、セグメントに沿って進む間、連続的（例えば、定期的および／または設定されたイベント時）に、更新されたフィードバックおよび他のタイプのフィードバックデータ（例えば、「今までの最低心拍数で”Ｏｌｄ  Ｌａ  Ｈｏｎｄａ≡を走行しています！」）を受信することができる。ユーザ１６００が身体活動中に受信するフィードバックは、時に、ユーザ１６００がセグメントの残り部分で自分のパフォーマンスを変化させる動機付けまたはそのたの要因となりうる。例えば、ユーザ１６００が、「”Ｏｌｄ  Ｌａ  Ｈｏｎｄａ”のトップより３秒だけ前にいます」などのフィードバックを受信した場合、ユーザ１６００の目標であるならば、速度を上げてセグメントのトップに追いつくまたは追い越すように動機づけられる。この例に示すように、ユーザの現行活動中にシステム１５００を利用すれば、ユーザが活動の終了後にしか知り得なかったユーザのパフォーマンスに関する情報をリアルタイムにユーザに知らせる助けとなりうる。
【０１２９】
図１７は、いくつかの実施形態に従って、セグメントマッチングサーバの一実施形態を示す図である。いくつかの実施形態において、セグメントマッチングサーバ１５０８は、図１７の例を用いて実装される。例に示すように、セグメントマッチングサーバ１５０８は、上述のセグメントマッチングサーバ１０６と同じ構成要素をいくつか（セグメントデータベース２０２および定義エンジン２０６）備えており、さらに、設定パラメータデータベース１７０２、フィードバックエンジン１７０４、エフォート／現行活動データベース１７０３、および、マッチングエンジン１７０８など、さらなる構成要素を備える。
【０１３０】
いくつかの実施形態において、設定パラメータデータベース１７０２は、様々なデバイスおよび／またはユーザに関連する設定パラメータのセットを格納するよう構成されている。いくつかの実施形態では、データ（例えば、記録されたＧＰＳデータおよび関連データ）がセグメントマッチングサーバ１５０８に送信される方法およびデータ（例えば、フィードバック）がセグメントマッチングサーバ１５０８から受信される方法に関する１セットのパラメータが、特定のユーザおよび／または特定のデバイスのためにユーザによって設定される。いくつかの実施形態において、パラメータのセットは、ユーザが設定したパラメータと、事前設定されたパラメータ（例えば、デバイス１５０２などのデバイスの製造業者によって決定されたパラメータ）とを含む。パラメータの例は、セグメントに関連するデータがデバイスにダウンロードされるか否か、そしていつダウンロードするか、特定のユーザが関心を持つセグメントに関連付けられた識別子、特定のユーザが自分自身のパフォーマンスと比較したいと思うパフォーマンスデータ（例えば、履歴または同時のパフォーマンスデータ）を有する他のユーザに関連付けられた識別子、現行活動に関連するユーザのパフォーマンスデータと、別のセットのパフォーマンスデータとの間の比較のタイプ；記録済みのＧＰＳおよびその他のデータがデバイスから送信される頻度、デバイスから送信されるべき記録済みのＧＰＳおよびその他のデータを送信するための１または複数のトリガ、デバイスのバッテリ寿命の節約に関する関心度、ユーザが関心を持つ個人的成果のタイプ、特定のユーザのパフォーマンスを１または複数のソーシャルメディア／ネットワークプラットフォームで共有するか否か、そしていつ共有するか、複数のユーザの間での同時性に関する時間の範囲（例えば、その定義は、身体活動を行っている少なくとも２人のユーザが互いに同時進行であると見なされる時間または距離の範囲を示す）、を含みうる。いくつかの実施形態では、１セットのパラメータが、その設定の対象となったユーザおよび／またはデバイスに関連付けられた識別子と共に格納される。
【０１３１】
いくつかの実施形態において、エフォート／現行活動データベース１７０３は、エフォートデータベース２０４の機能と、さらなる機能とを有する。いくつかの実施形態において、エフォートデータベース２０４について上述したように記録済みのエフォートのデータを格納することに加えて、エフォート／現行活動データベース１７０３は、ユーザの現行活動（すなわち、進行中の活動）について記録されたＧＰＳデータおよび関連データも格納する。様々な実施形態において、ユーザの現行活動について記録されたＧＰＳデータおよび関連データは、ユーザが現行活動をさらに進めるにつれて経時的にユーザの現行活動について記録された新規および／または更新ＧＰＳデータおよび関連データで、更新および／または追加される。例えば、ユーザ「Ｂａｒｒｙ」の現在のランニング活動中に、時間ｔ０までに記録されたＧＰＳデータおよび関連データが、セグメントマッチングサーバ１５０８に送信され、エフォート／現行活動データベース１７０３のエントリに格納されうる。次いで、Ｂａｒｒｙの現在のランニング活動についてその後の時間ｔ１までに記録されたＧＰＳデータおよび関連データ（すなわち、時間ｔ０から時間ｔ１までに記録されたデータのみ）が、セグメントマッチングサーバ１５０８に送信され、エフォート／現行活動データベース１７０３の対応するエントリに追加される。
【０１３２】
様々な実施形態において、マッチングエンジン１７０８は、マッチングエンジン２０８の機能と、さらなる機能とを有する。いくつかの実施形態において、マッチングエンジン１７０８は、ユーザが身体活動を進めるにつれて経時的にデバイス１５０２などのデバイスで記録された新規または更新されたＧＰＳデータおよびその他のデータを連続的（例えば、定期的および／または様々な設定済みのトリガイベント時）に受信するよう構成されている。いくつかの実施形態において、マッチングエンジン１７０８は、それまでにデバイスから受信したＧＰＳデータを用いて、ＧＰＳデータが１または複数の定義されたセグメントの少なくとも一部を横切っているか否かを判定する。例えば、マッチングエンジン１７０８は、ＧＰＳデータにより、記録されたＧＰＳデータの少なくとも一部が、セグメントに対して定義された仮想スタートラインと交差したことが示された場合に、現行活動について記録されたＧＰＳデータがそのセグメントに一致する（すなわち、ユーザが、そのセグメントの経路上または非常に近くに存在する）と判定することができる。セグメントの仮想スタートラインを定義して、仮想スタートラインが横切られたか否かを判定することは、図１２を参照して上述した技術を用いて実行することが可能であり、例えば、記録されたエフォートに関連付けられたＧＰＳ情報を用いる代わりに、それまでに現行活動について記録されたＧＰＳデータを用いて、２つの連続したポイントが仮想スタートラインの異なる側にあるか否かを判定する。異なる側にあれば、現行活動は、セグメントの仮想スタートラインを横切ったと判定されるため、そのセグメントと一致すると判定される。セグメントがループを形成する別の実施形態では、ループセグメントの仮想スタートラインを定義する代わりに、現行活動について記録されたＧＰＳデータを用いて、現行活動が（例えば、ループセグメントの少なくとも一部を少なくとも横切ったことにより）ループに入ったか否かを判定することができる。現行活動について記録されたＧＰＳデータが、ループセグメントの少なくとも一部を横切ったと判定された場合、その現行活動は、ループセグメントに一致すると判定される。いくつかの実施形態において、１または複数のセグメントが、現行活動について記録されたＧＰＳデータに一致すると判定されうる。いくつかの実施形態において、時間の経過と共に、現行活動について記録されたさらなる新規および／または更新ＧＰＳデータが受信されるので、マッチングエンジン１７０８は、新規および／または更新ＧＰＳデータを用いて、ユーザの現行活動に関連するＧＰＳデータが、その現行活動に一致すると以前に判定されたセグメントにまだ一致しているか否か（すなわち、ユーザがまだ、そのセグメントに関連する経路上にいるか否か）を判定することができる。ユーザの現行活動がまだセグメントに一致していると判定された場合、マッチングエンジン１７０８は、ユーザがセグメントに沿ってどれだけ進んだかを決定できる。例えば、それまでに受信されたユーザの現行活動について記録されたＧＰＳデータに基づいて、マッチングエンジン１７０８は、ユーザがセグメントの７０％まで到達したと決定しうる。いくつかの実施形態において、マッチングエンジン１７０８は、現在活動を行っているユーザに関連する１セットの設定済みのパラメータ（設定パラメータデータベース１７０２からリトリーブされる）を用いて、マッチングしたいと思うセグメントとしてユーザが特定した１または複数のセグメントを決定するよう構成されている。次いで、マッチングエンジン１７０８は、データベース内のすべての利用可能な／定義済みのセグメントではなく、ユーザにとって関心のあるセグメントのみと、ユーザの現行活動のＧＰＳデータをマッチングすることができる。いくつかの実施形態において、マッチングエンジン１７０８は、一致した１または複数のセグメントに関連付けられた識別子をフィードバックエンジン１７０４に送信するよう構成されている。
【０１３３】
フィードバックエンジン１７０４は、ユーザに関連付けられている１セットの設定済みパラメータと、ユーザの現行活動と一致した少なくとも１つのセグメントに関するデータとを用いて、ユーザが利用しているデバイスに送信するフィードバックデータのタイプを決定するよう構成されている。いくつかの実施形態において、フィードバックエンジン１７０４は、ユーザの識別子に関連付けられている設定済みパラメータのセットを設定パラメータデータベース１７０２からリトリーブする。いくつかの実施形態において、フィードバックエンジン１７０４は、ユーザの現行活動と一致するセグメントに関連付けられた識別子をマッチングエンジン１７０８から受信する。いくつかの実施形態において、一致したセグメントに関連付けられている受信済みの識別子を用いて、フィードバックエンジン１７０４は、ユーザおよび／または同じセグメントに一致した他のユーザのエフォートに関する履歴データをエフォート／現行活動データベース１７０３からリトリーブするよう構成されている。いくつかの実施形態において、フィードバックエンジン１７０４は、セグメントに一致した他のユーザの現行活動に関して同時並行で得られたデータをエフォート／現行活動データベース１７０３からリトリーブするよう構成されている。例えば、他のユーザの現行活動のデータは、リトリーブされた設定済みパラメータのセット内の同時性の定義に基づいてユーザと同時性を持つと判定されうる。いくつかの実施形態において、フィードバックエンジン１７０４は、リトリーブした設定済みパラメータのセットを用いて、ユーザが、一致したセグメントに関するリトリーブされたデータの内の少なくともどのサブセットを、ユーザの現行活動の関連データ（パフォーマンスデータとも呼ぶ）と比較したいのかを決定する。例えば、ユーザの設定済みパラメータは、ユーザが、ユーザの現行活動に関連するユーザのパフォーマンスデータを、一致したセグメント上での自分の友達Ｃａｒｒｉｅ、Ｄａｎｉｅｌ、および、Ｅｒｉｃの履歴または同時パフォーマンスデータと比較したいと思っていることを示唆しうる。いくつかの実施形態において、フィードバックエンジン１７０４は、リトリーブした設定済みパラメータのセットを用いて、リトリーブした履歴および／または同時データに対して、どのタイプの比較を行うのかを決定することができる。例えば、ユーザの設定済みパラメータは、ユーザが、自分自身のパフォーマンスデータと、友達Ｃａｒｒｉｅ、Ｄａｎｉｅｌ、および、Ｅｒｉｃに関連するパフォーマンスデータとを含む順位表に関するフィードバックデータを受信したいと思っていることを示唆しうる。いくつかの実施形態において、フィードバックエンジン１７０４は、（リトリーブされた設定済みパラメータのセットで示唆されたように）ユーザが関心を持つセグメントおよび／または別のユーザを近くに検出したことに関する通知を送信するよう構成されている。いくつかの実施形態において、フィードバックエンジン１７０４は、サードパーティが運営するソーシャルネットワークに通信して、ユーザが現行活動で達成したユーザの特定のパフォーマンスおよび／またはユーザの現行活動の更新された進捗レポートの表示をソーシャルネットワークのプラットフォームに投稿するよう構成されている。いくつかの実施形態において、フィードバックエンジン１７０４は、上記のタイプ以外のフィードバックデータを提供するよう構成されてもよい。
【０１３４】
いくつかの実施形態において、デバイス１５０２は、セグメントデータベース２０２、定義エンジン２０６、エフォート／現行活動データベース１７０３、マッチングエンジン１７０８、設定パラメータデータベース１７０２、および、フィードバックエンジン１７０４の少なくとも一部もしくは等価の機能を備えてよく、それにより、デバイス１５０２は、ユーザの活動中にセグメントマッチングサーバ１５０８と情報をやり取りする必要なしに、デバイス１５０２でリアルタイムなフィードバックを提供することができる。いくつかの実施形態において、デバイス１５０２は、ユーザが身体活動を行う前にセグメントマッチングサーバ１５０８からセグメントデータをプリフェッチしてローカルに格納する。そうすれば、活動の実行中に、プリフェッチ済みのデータに基づいて、フィードバックデータ（例えば、少なくとも一致したセグメントを含むデータ）が生成されうる。
【０１３５】
図１８は、いくつかの実施形態に従って、セグメントに関連する現行活動中にリアルタイムのフィードバックを提供するための処理の一実施形態を示すフローチャートである。いくつかの実施形態において、処理１８００は、システム１５００で実施される。いくつかの実施形態において、処理１８００は、システム１５００のデバイス１５０２で実施される。
【０１３６】
工程１８０２では、ユーザの現行活動に関連するセグメントが、それまでに記録された位置情報の少なくとも一部に少なくとも部分的に基づいて決定される。いくつかの実施形態において、位置情報（例えば、ＧＰＳデータ）は、ユーザが活動を行っている間にユーザの現行活動（例えば、サイクリングまたはランニング）について記録される。いくつかの実施形態では、ユーザの現行活動の関連データも、ユーザが活動を行っている間に記録される。関連データ（例えば、速度、心拍数、仕事率／ワット、リズム）の少なくとも一部は、現行活動中のユーザパフォーマンスに関連する。経時的に、さらなるＧＰＳデータおよび関連データが、ユーザの現行活動について記録される。ユーザの現行活動中の或る時点に、記録済みのＧＰＳデータの少なくとも一部を用いて、ユーザの現行活動に関連するセグメントが決定される。いくつかの実施形態において、ユーザの現行活動に関連するセグメントは、ユーザの現行活動についてそれまでに記録された位置情報の少なくとも一部が一致するセグメントである。
【０１３７】
工程１８０４では、セグメントでのユーザの現行活動に関連するリアルタイムのセグメントパフォーマンス情報が伝達される。いくつかの実施形態において、伝達されるパフォーマンス情報のタイプおよび方法は、ユーザおよび／または位置情報を生成したデバイスに関連する設定済みパラメータのセットに基づいて決定される。いくつかの実施形態において、（例えば、セグメントマッチングによって）セグメントが決定されると、そのセグメントに関連して格納されたデータがリトリーブされる。いくつかの実施形態において、リトリーブされたデータは、ユーザ（現行活動を行っているユーザと、その他のユーザとを含む）の関連セグメント（例えば、一致したセグメント）に関する履歴パフォーマンスデータと、現在セグメント上にいる他のユーザの関連セグメントに関する同時パフォーマンスデータとを含みうる。いくつかの実施形態において、それまでに決定済みセグメントでユーザの現行活動について記録されたパフォーマンスデータは、決定済みセグメントに関連するリトリーブ済みのデータの対応する部分と比較され、比較結果は、伝達されるパフォーマンス情報を含む。例えば、比較結果は、決定済みセグメントでのユーザの履歴パフォーマンスデータをそのセグメントでのユーザの現行活動のパフォーマンスデータと比較することによって生成されうる。いくつかの実施形態において、パフォーマンス情報は、セグメントに沿ったユーザの現在の進捗を含み、それまでに記録された位置情報と、セグメントに沿って地理的位置を特定するデータとに少なくとも部分的に基づいて決定される。いくつかの実施形態において、パフォーマンス情報は、記録された位置情報と、ユーザの現行活動の関連データとに基づいた、達成された個人的成果に関する指摘を含む。いくつかの実施形態において、決定済みのセグメントでのユーザの現行活動に関連するパフォーマンス情報（他の情報の代わりまたは追加で）が、（例えば、位置情報および関連データを生成したデバイスの）ユーザインターフェースの表示もしくは音声および／または映像出力を通して伝達されうる。
【０１３８】
いくつかの実施形態において、ユーザの現行活動の現在位置に近接／隣接したセグメントに関する情報も伝達される。いくつかの実施形態において、ユーザの現在位置に近接または隣接するセグメントは、ユーザの現行活動に一致しないがユーザの現在位置まで指定された距離の範囲内にあるセグメントを含む。例えば、ユーザは、ユーザの現在位置および／またはユーザが現在進んでいるセグメントに近い（例えば、半径１０マイルの範囲内など、指定された距離の範囲内の）推奨セグメントに関心を持ちうる。近くのセグメントをユーザに知らせれば、ユーザが、存在を知らなかったセグメントまたは現在位置の近くに存在することを知らなかったセグメントを発見するのに役立ちうる。いくつかの実施形態では、１または複数の基準に合うセグメントのみが検出されてユーザに推奨されるように、ユーザに対して近くのセグメントの検出／通知／推奨を行うためのフィルタのパラメータが設定されうる。例えば、近くのセグメントの検出に関する基準は、以下の内の１または複数を含みうる。ユーザの現在位置まで特定の距離の範囲内にあるセグメント、ユーザが関心を持っていることを示唆したセグメント、ユーザが関心を持っていることを示唆したセグメントに（例えば、地理、距離、標高、および／または、その他の基準に基づいて）類似していると判定されたセグメント、ならびに／もしくは、１または複数の他のユーザの間で人気があると判定されたセグメント。いくつかの実施形態において、ユーザが現行活動を行うと現在位置が変化するため、近くのセグメントの検出は、ユーザの現行活動の間中、定期的および／またはその他のイベント時に実行されうる。例えば、ユーザが現行活動を進めていくと、新しいおよび／または異なる地理的領域に入る場合があり、そこで、異なるセットの近くのセグメントが検出されてユーザに推奨されうる。いくつかの実施形態において、ユーザの現行活動中に各イベントが起きた時に、設定済みの基準およびユーザの更新された現在位置に基づいて、近くのセグメントの決定がなされうるように、かかるイベントが設定されうる。例えば、イベントは、以前の決定から１０分間の経過、または、以前の決定から５マイルの距離の進行であってよい。
【０１３９】
図１９は、いくつかの実施形態に従って、デバイスで記録された情報をリモートのセグメントマッチングサーバに送信することに関するパラメータを設定するための処理の一実施形態を示すフローチャートである。いくつかの実施形態において、処理１９００は、システム１９００で実施される。いくつかの実施形態において、処理１９００は、処理１８００の実行前に実施される。
【０１４０】
処理１９００は、サーバがデータを受信して解析を実行できるように、記録済みのＧＰＳデータおよび関連データ（例えば、パフォーマンスデータ）が、記録されているデバイスから、セグメントマッチングサーバ（セグメントマッチングサーバ１５０８など）に送信される時に関連するパラメータを設定するために利用されうる。いくつかの実施形態において、処理１９００の選択は、デバイス１５０２などのデバイスに関連するユーザインターフェースでユーザによって入力されうる。いくつかの実施形態において、処理１９００によって設定されたパラメータは、格納されてユーザの活動中に利用されうる。いくつかの実施形態において、データ送信のためのパラメータは、例に示したものより多くても少なくてもよい。いくつかの実施形態において、設定されたパラメータに基づいて、デバイスが記録済みデータをセグメントマッチングサーバに送信する頻度は、ユーザの現行活動を通して動的でありうる。いくつかの実施形態において、データ送信のために設定されたパラメータが、より高い頻度のデータ送信を定義した場合、サーバから返されるデータ解析結果（すなわち、フィードバックデータ）は、より高頻度／詳細になりうるが、デバイスの電力消費が増大する。しかしながら、データの送信頻度を低くすると、サーバからのフィードバックデータの頻度は低くなるが、デバイスの電力消費は小さくなる。
【０１４１】
工程１９０２では、データの送信をトリガするイベントが設定されるか否かが決定される。トリガイベントが設定される場合、制御は工程１９０４に進む。そうれなければ、制御は工程１９０６に進む。工程１９０４では、１または複数のトリガイベントの定義が受信される。例えば、ユーザが休憩している、および／または、ユーザの現行活動に関して異常なことが起きていることを示しうるユーザの現行活動の中断に、１つのトリガイベントが関連付けられうる。
【０１４２】
工程１９０６では、データの送信が定期的に行われるか否かが決定される。データが定期的に送信される場合、制御は工程１９０８に進む。そうれなければ、制御は工程１９１０に進む。工程１９０８では、期間定義が受信される。例えば、期間は、データが１０秒ごとにサーバに送信されるように設定されうる。
【０１４３】
工程１９１０では、データの送信が、デバイスのバッテリ寿命の節約に関する関心度に依存するか否かが決定される。データの送信が、バッテリ寿命の節約に関する関心度に依存する場合、制御は工程１９１２に進む。そうれなければ、制御は工程１９１４に進む。工程１９１２では、バッテリ寿命節約に関連する１または複数の定義が受信される。例えば、デバイスのバッテリ寿命の節約に対するいくつかのレベルの関心度（例えば、バッテリ寿命の節約を強く望むレベルからバッテリ寿命の節約への関心が低いレベルまで）が、記録済みのデータをサーバに送信する頻度についての対応する設定と共に定義されうる。したがって、例えば、バッテリ寿命の節約への強い関心度は、比較的低い頻度でデータをサーバに送信することに関連付けられ、バッテリ寿命の節約への低い関心度は、比較的高い頻度でデータをサーバに送信することに関連付けられる。
【０１４４】
工程１９１４では、他のルールが設定されるか否かが決定される。他のルールが設定される場合、制御は工程１９１６に進む。そうでなければ、処理１９００は終了する。例えば、工程１９０２、１９０６、および、１９１０に記載された例以外のルールが定義されうる。
【０１４５】
図２０は、いくつかの実施形態に従って、セグメントデータをサーバからプリフェッチして、デバイスでリアルタイムのフィードバックを生成するための処理の一実施形態を示すフローチャートである。いくつかの実施形態において、処理２０００は、システム１５００で実施される。
【０１４６】
処理２０００を用いれば、ユーザの身体活動の開始前にセグメントマッチングサーバ（セグメントマッチングサーバ１５０８など）からどのデータをプリフェッチするのかを決定し、後になってユーザの身体活動中にデバイスでローカルにリアルタイムのフィードバックを生成できるように、かかるデータをデバイスに格納することができる。いくつかの実施形態において、処理２０００は、活動のＧＰＳデータが決定されうるように、ユーザの身体活動中にネットワーク接続の利用を必要とするが、セグメントマッチングサーバからプリフェッチしたデータを用いて、フィードバックデータを生成するための解析をローカルで実行できるため、リモートのセグメントマッチングサーバに記録済みのＧＰＳデータおよびその他のデータを繰り返し送信する必要はない。いくつかの実施形態において、処理２０００は、リモートのセグメントマッチングサーバと頻繁に通信する必要のある処理よりも、バッテリ寿命の消費が遅く、フィードバックデータを早く提供しうる。
【０１４７】
工程２００２では、任意選択的に、セグメントに関連する１または複数の選択が受信される。いくつかの実施形態において、かかる選択は、デバイスに関連するユーザインターフェースでユーザによって入力されうる。いくつかの実施形態において、工程２００２は、ユーザが身体活動を行う前に（また、おそらくは、ユーザが身体活動を始める準備の時に）ユーザがマッチングしたいと思うセグメントのみを選択する機会をユーザに与える。したがって、工程２００２において受信されたセグメントに関する選択を用いて、データが格納されている全セグメントではなく、上記のようなセグメントのみを含むデータを決定することができる。
【０１４８】
いくつかの実施形態において、かかる１または複数の選択は、ユーザにとって関心のあるセグメントにも関連してよく、かかるセグメントは、ユーザが身体活動中にセグメントの近く（例えば、半径１０マイル以内など、指定された距離の範囲内）にいる場合に検出される。例えば、ユーザは、ユーザにとって関心のあるセグメントに関連するセグメントデータを選択して、セグメントマッチングサーバからプリフェッチすることが可能であり、そうすれば、ユーザは、身体活動中、かかるセグメントの近くにいる時に通知される。例えば、後に、ユーザが身体活動を行っている時に、セグメントマッチングサーバからデバイスにロードされたプリフェッチ済みのデータは、ユーザの現行活動がセグメントに一致しているか否か、および／または、ユーザの現在位置の近くにセグメントがあるか否かを（例えば、定期的および／またはユーザがＸマイル進むごとに）判定するために利用されうる。
【０１４９】
工程２００４では、セグメントに関するデータが、１または複数の選択に少なくとも部分的に基づいてサーバから取得される。いくつかの実施形態において、選択によって特定されたセグメントに関するデータは、セグメントに一致すると判定されたエフォートの履歴パフォーマンスデータ、および、セグメントの各々を規定する地理情報（例えば、タイルまたはＭＢＲのセット）の一方または両方を含む。
【０１５０】
いくつかの実施形態において、１または複数の選択によって特定されたセグメント以外のセグメントに関するさらなるセグメントデータが取得されてもよい。例えば、選択されたセグメントに類似すると判定されたセグメントに関するデータが取得されてもよい。
【０１５１】
工程２００６では、取得されたデータがローカルに格納される。ユーザの身体活動の開始前に取得されたデータは、デバイスの一時記憶装置または永続記憶装置のいずれかに格納されてよく、そうすれば、後にユーザの身体活動中に利用できるため、ユーザが現在身体活動を行っている間に、一致するセグメントおよび／またはユーザに近い任意のセグメントを決定するために、リモートのセグメントマッチングサーバが必要にならない。
【０１５２】
工程２００８では、ユーザの現行活動に関連する位置情報およびパフォーマンス情報が、格納済みのデータと比較される。例えば、それまでにユーザの現行活動について記録されたＧＰＳデータの少なくとも一部を用いて、ユーザ活動の開始前にセグメントマッチングサーバからプリフェッチされたデータを含むデータがローカルに格納されているセグメントをマッチングすることができる。また、例えば、ユーザの現行活動に一致したセグメントに一致すると判定されたエフォートの履歴パフォーマンスデータを用いて、それまでのユーザの現行活動について記録されたパフォーマンスデータと比較することができる。いくつかの実施形態において、ユーザの現行活動に関する位置情報およびパフォーマンス情報ならびにローカルに格納された情報を用いて、他の判定がなされてもよい。例えば、ローカルに格納されたデータを用いて、ユーザの現在位置に近接／隣接したセグメントが存在するか否かを判定することができる。
【０１５３】
図２１は、いくつかの実施形態に従って、ユーザの現行活動のパフォーマンスデータとの比較のために取得されるデータへのフィルタに関するパラメータを設定するための処理の一実施形態を示すフローチャートである。いくつかの実施形態において、処理２１００は、システム１５００において実施される。
【０１５４】
処理２１００は、ユーザが関心を持つデータ（例えば、ユーザの現行活動中にセグメントマッチングサーバ１５０８などのセグメントマッチングサーバから取得される）のタイプを特定するパラメータを設定するために利用されうる。なお、パラメータは、ユーザにとって関心のないデータをフィルタアウトするために利用できる。いくつかの実施形態において、処理２１００の選択および定義は、例えば、デバイスに関連するユーザインターフェースでユーザによって入力されうる。いくつかの実施形態において、処理２１００は、潜在的にマッチングしたい、または、現行活動中に近くにあるか否かを検出したいと、ユーザが実際に思うセグメントのサブセット（例えば、ユーザは多くのセグメントを含む地理的領域を横切りうるため、セグメントの多くに関心を示さないため）、他のユーザに関連するパフォーマンスデータのサブセット（例えば、ユーザは、友達である特定の他のユーザとのみパフォーマンスの比較を行いたいと思う場合があるため）、および、少なくとも２人のユーザの間の同時性の範囲に関するユーザ所望の定義（例えば、ユーザは、自分のパフォーマンスデータを「同時の」ユーザと比較したいと思い、時間的または空間的に近いと思うユーザのみを含むように同時性の範囲を定義して、そのようなユーザのパフォーマンスデータが同じセグメントの同時ユーザとして比較されうるよう望むため）を特定するために利用される。例に示したようなフィルタとして機能しうるパラメータを設定することにより、大量のデータ（そのほとんどは、デバイスを利用するユーザにとって潜在的に望まれていない）をデバイスでリトリーブすることなしに、焦点を絞った効率的な方法でセグメントマッチングサーバからデータをリトリーブすることができる。
【０１５５】
工程２１０２では、マッチングすべき、または、近くにあるか否かを検出すべき１または複数のセグメントに関する１または複数の選択がリトリーブされる。いくつかの実施形態において、セグメントに関する選択は、セグメントの名称（例えば、「Ｏｌｄ  Ｌａ  Ｈｏｎｄａ」）に対応する識別子であってもよいし、１または複数のセグメントの特性（例えば、距離＝３０＋マイル、難関度＝中、セグメント内の傾斜の最大数＝５）を記述してもよい。次いで、選択は、選択内に含まれる記述に対応する１または複数のセグメントを検索するために利用されてよく、見つかったセグメントは、ユーザの現行活動の記録済みのＧＰＳデータと比較され、ユーザの現行活動が、見つかったセグメントの内の任意の１または複数のセグメントと一致するか否か、または、近くにあるか否かが判定される。換言すると、選択の対応するセグメントのみを用いて、それらの内のいずれかが、ユーザの現行活動が行われているセグメントであるか否か、および／または、ユーザの現在位置に近いか否かを判定する。
【０１５６】
工程２１０４では、検出対象の１または複数の他のユーザに関する１または複数の選択がリトリーブされる。いくつかの実施形態において、他のユーザに関する選択は、ユーザの現行活動が一致したセグメントでの他のユーザのパフォーマンスデータの内、ユーザが同じセグメントでの自分のパフォーマンスデータと潜在的に比較したいと思うのはどのデータであるのかを判定するために利用される。例えば、ユーザＢａｒｒｙは、自分のパフォーマンスデータを友達のデータとのみ比較したいと思うかもしれない。いくつかの実施形態において、他のユーザに関する選択は、ユーザが活動を行っている時にどの他のユーザを検出したいのかを決定する。例えば、ユーザＢａｒｒｙは、友達のＣａｒｒｉｅ（Ｃａｒｉｅもデバイス１５０２などのデバイスを用いる）も近く（例えば、Ｂａｒｒｙがサイクリングしていない時にＢａｒｒｙと同じセグメントまたは近くのセグメント）で身体活動を行っているという通知をいつ受信するのかを設定することができる。いくつかの実施形態において、検出対象の他のユーザに関する選択は、他のユーザに関連付けられた識別子、例えば、セグメントマッチングサーバのユーザのアカウントに関連付けられたユーザの実際の名前またはニックネーム、を含む。いくつかの実施形態において、検出対象の他のユーザに関する選択は、１または複数の身体的特徴、例えば、年齢の範囲、性別、および、関連する経験レベル、を含む。例えば、ユーザＢａｒｒｙは、自分と似た身体的特徴を持つユーザ（ユーザとすでに友達であってもなくてもよい）を、身体活動を行っていない時に検出したいと思いうる。そうすれば、Ｂａｒｒｙの活動中にそのようなユーザとパフォーマンスデータの比較が行われるため、Ｂａｒｒｙは、類似した個人とのパフォーマンスの対比を知ることができる。
【０１５７】
工程２１０６では、少なくとも２人のユーザの間の同時性の範囲の定義が受信される。いくつかの実施形態において、同時性の範囲の定義は、その範囲内にある２以上のユーザを同時であると分類するための時間または距離の範囲であってよい。例えば、２人のユーザが、同じセグメントに沿ってサイクリングしていたとしても、異なる時間に出発した場合があり、結果として、各々が所与の時間にセグメントの別の地点にいることになる。しかしながら、ユーザは、２人のユーザが、同時にセグメントをスタートしなかった場合、および／または、並んでサイクリングしていない場合でも、同じセグメントにいる別のユーザを自分と同時であると見なしたい場合がある。したがって、例えば、ユーザは、同時性の範囲を、２人のユーザの間の距離１０マイルまで、または、２人のユーザの間のスタート時間の差２分まで、と定義できる。このように、ユーザは、現在同じセグメントに存在するがユーザの１分前にセグメントの仮想スタートラインを横切った別のユーザに関するフィードバックデータを潜在的に受信できる。こうして、ユーザは、他の同時のユーザの知識を受信すると、その同時のユーザに追いつくまたは追い越すよう動機づけられうる。
【０１５８】
図２２は、いくつかの実施形態に従って、ユーザの現行活動にセグメントをマッチングさせるための処理の一実施形態を示すフローチャートである。いくつかの実施形態において、処理２２００は、デバイス１５０２において実施される。
【０１５９】
処理２２００は、ユーザの現行活動中にユーザがセグメントに一致した場合（すなわち、ユーザがセグメント上で活動を行っている場合）を決定するための技術の一例である。
【０１６０】
工程２２０２では、ユーザの現行活動に関する位置情報が記録される。いくつかの実施形態において、位置情報は、ＧＰＳデータを含む。いくつかの実施形態において、ユーザの現行活動の位置情報は、ユーザによって、または、情報を記録するデバイス１５０２などのデバイスのデフォルト設定によって設定された頻度で記録される。いくつかの実施形態において、記録された位置情報は、リモートセグメントマッチングサーバ１５０８などのリモートセグメントマッチングサーバに送信される。
【０１６１】
工程２２０４では、セグメントの仮想スタートラインが横切られたか否かが判定される。いくつかの実施形態では、ユーザの現行活動中にそれまでに記録された位置情報の少なくとも一部を用いて、活動の地理的経路が格納済みのセグメントに対して定義された仮想スタートラインを横切ったか否かを判定する。例えば、仮想スタートラインが横切られたか否かの判定は、図１２で説明した技術に基づいてなされうる。いくつかの実施形態において、工程２２０４の判定は、セグメントマッチングサーバでなされる。いくつかの実施形態において、工程２２０４の判定は、セグメントデータ（例えば、セグメントおよびそれらの仮想スタートラインを定義するデータのセット）がデバイスにローカルに格納されている場合、そのデバイスでなされる。仮想スタートラインが横切られたと判定された場合、制御は工程２２０６に進む。仮想スタートラインがまだ横切られていないと判定された場合、制御は工程２２０２に戻り、ユーザの現行活動に関するさらなる位置情報が、経時的に記録される。
【０１６２】
工程２２０６では、横切られたスタートラインに関連するセグメントが、ユーザの現行活動に一致すると決定される。いくつかの実施形態では、ユーザの現行活動の位置情報が横切ったと判定された仮想スタートラインに関連するセグメントについて、ユーザが、そのセグメントに存在すると仮定される。いくつかの実施形態において、セグメントに一致すると判定されたエフォートに関連する履歴パフォーマンスデータおよび／またはセグメントに一致すると判定された他のユーザの現行活動の同時パフォーマンスデータが、セグメントマッチングサーバからリトリーブされるか、または、かかるデータのコピーがデバイスでローカルに入手可能である場合にはローカルでリトリーブされる。リトリーブされたデータは、例えば、ユーザの現行パフォーマンスデータと、一致したセグメントでのユーザの履歴パフォーマンスデータとの比較結果、ならびに、ユーザの現行パフォーマンスデータと、一致したセグメントでの他のユーザの履歴および／または同時パフォーマンスデータとの比較結果など、ユーザのための１または複数のタイプのフィードバックデータを提供するために利用されうる。
【０１６３】
いくつかの実施形態において、格納されたセグメントがループを形成し、それに対して定義された仮想スタートラインを持たない場合、ユーザの現行活動がかかるループセグメントに一致するか否かを判定する際には、工程２２０４も工程２２０６も実行されなくてよい。代わりに、いくつかの実施形態では、ユーザの現行活動について記録された位置情報がループセグメントの少なくとも一部を横切った（これは、ユーザがループに入ったことを示しうる）場合に、ユーザの現行活動がループセグメントに一致すると判定される。
【０１６４】
図２３は、いくつかの実施形態に従って、セグメントに沿ったユーザの進捗を決定するための処理の一実施形態を示すフローチャートである。いくつかの実施形態において、処理２３００は、システム１５００において実施される。いくつかの実施形態において、処理１８００は、処理２３００を用いて実施される。
【０１６５】
処理２３００は、ユーザの現行活動がセグメントに一致する（すなわち、セグメント上で行われている）と（処理２２００などの処理で）判定された後に利用されうる。処理２３００は、経時的に（例えば、定期的に）、ユーザの現行活動が、一致したセグメント上で継続されているか否かを判定し、そうである場合に、ユーザがセグメントに沿ってどれだけ進んだかを決定するために利用できる。いくつかの実施形態では、ユーザがまだ、一致したセグメント上を進んでいると判定された場合に、その判定に少なくとも部分的に基づいてフィードバックデータが提供される。
【０１６６】
工程２３０２では、ユーザの現行活動に関連するセグメントが決定される。いくつかの実施形態において、セグメントは、処理２２００などの処理を用いてユーザの現行活動についてそれまでに記録された位置情報の少なくとも一部に一致するセグメントとして決定される。
【０１６７】
工程２３０４では、ユーザがまだセグメント上にいるか否かが判定される。いくつかの実施形態において、工程２３０４は、一致したセグメントが決定された後の或る時に実行される。いくつかの実施形態では、工程２３０４では、ユーザの現行活動についてそれまでに記録された位置情報を、一致したセグメントを定義するデータ（例えば、ＭＢＲのセット）と比較して、ユーザの現行活動がまだセグメントに沿って進んでいるのか、セグメントから逸脱したのかを判定する。例えば、一致したセグメントが、格納されたＭＢＲのセットとして表される場合、ユーザの現行活動についてそれまでに記録された位置情報も、ＭＢＲのセットに変換されうる。次いで、ユーザの現行活動についてそれまでに記録された位置情報に関連するＭＢＲが、格納されたセグメントに関連する１セットのＭＢＲの少なくとも一部とほとんど重複する場合に、ユーザの現行活動がまだセグメント上にあると判定される。いくつかの実施形態において、工程２３０４の判定は、セグメントマッチングサーバ１５０８などのリモートセグメントマッチングサーバで実行されるか、もしくは、セグメントデータがデバイス１５０２などのデバイスにローカルに格納されている場合にそのデバイスで実行される。ユーザがもはやセグメント上にいないと判定された場合、処理２３００は終了する。ユーザがまだセグメント上にいると判定された場合、制御は工程２３０６に進む。
【０１６８】
工程２３０６では、セグメントに沿った現在の進捗が、それまでのユーザの現行活動に関連する位置情報に少なくとも部分的に基づいて決定される。例えば、ユーザの現行活動についてそれまでに記録された位置情報から変換されたＭＢＲと重複する格納済みセグメントに関連する１セットのＭＢＲの割合を決定することが可能であり、この割合をセグメントに沿ったユーザの現在の進捗として決定できる。
【０１６９】
工程２３０８では、現在の進捗に少なくとも部分的に基づいたセグメントでのユーザの現行活動に関連するリアルタイムのセグメントパフォーマンス情報が伝達される。いくつかの実施形態では、工程２３０８は、任意選択的に実行される。いくつかの実施形態において、セグメントにおけるユーザの決定された現在の進捗に少なくとも部分的に基づいて決定されたパフォーマンス情報のフィードバックデータが伝達される。例えば、設定されたパラメータを用いて、どのような場合に、現在の進捗がユーザに伝達されるのが望ましいのかを決定できる。一例としては、ユーザがセグメントの中間地点にいる時であり、その時に、いくつかのパフォーマンス情報（例えば、パフォーマンスデータの比較に基づいて決定されたもの）が、ユーザに伝達される。例えば、かかるフィードバックデータのユーザへの伝達は、「Ｏｌｄ  Ｌａ  Ｈｏｎｄａの中間地点を過ぎました。自己最高記録のペースを１１秒上回っています」という表示および／または音声出力としてデバイスでなされうる。
【０１７０】
図２４は、いくつかの実施形態に従って、ユーザの現行活動に関するリアルタイムのパフォーマンス情報を伝達するための処理の一実施形態を示すフローチャートである。いくつかの実施形態において、処理２４００は、システム１５００において実行される。いくつかの実施形態において、処理１８００の工程１８０４は、処理２４００を用いて実施される。
【０１７１】
処理２４００は、ユーザの現行活動中にユーザに提供されるリアルタイムフィードバックのタイプを決定する一例として利用されうる。
【０１７２】
工程２４０２では、ユーザの現行活動に一致すると判定されたセグメントに関するデータがリトリーブされる。いくつかの実施形態では、（例えば、ユーザの現行活動についてそれまでに記録された位置情報に基づいて）、ユーザの現行活動がセグメントに一致することがすでに判定されている。いくつかの実施形態において、セグメントに一致すると判定されたエフォートに関連する履歴パフォーマンスデータおよび／またはセグメントに一致すると判定された他のユーザの現行活動の同時パフォーマンスデータが、セグメントマッチングサーバ１５０８などのリモートセグメントマッチングサーバからリトリーブされる。
【０１７３】
工程２４０４では、それまでのユーザの現行活動に関するパフォーマンスデータが、リトリーブされたデータと比較される。いくつかの実施形態において、ユーザの現行活動についてデバイス（デバイス１５０２など）によって記録された関連データのパフォーマンスデータ部分が、リトリーブされたデータと比較される。様々なタイプのデータ比較が実行されうる。いくつかの実施形態では、行われる比較のタイプは、リトリーブされた設定済みパラメータのセットによって指定される。例えば、セグメントでのユーザの現行活動に関するパフォーマンスデータは、同じセグメントでのユーザ自身の履歴パフォーマンスデータ（例えば、そのユーザの以前に一致したエフォートに由来するもの）と比較されうる。また、例えば、セグメントでのユーザの現行活動に関するパフォーマンスデータは、同じセグメントでの他のユーザの履歴パフォーマンスデータ（例えば、他のユーザの以前に一致したエフォートに由来するもの）と比較されうる。別の例では、セグメントでのユーザの現行活動に関するパフォーマンスデータは、同時に同じセグメントにいる他のユーザのパフォーマンスデータと比較されうる。
【０１７４】
工程２４０６では、比較に少なくとも部分的に基づいて決定された結果が提示される。例えば、比較結果は、画像、テキスト、映像、および、音声の内の１または複数を用いてデバイスのユーザインターフェースでユーザに提供されうる。
【０１７５】
ユーザがまだ活動を行っている時、または、ユーザが活動を終えた直後に、デバイス１５０２などのデバイスで決定および提示されうるリアルタイムフィードバックデータのいくつかの例を以下に示す。
【０１７６】
それまでのセグメントでのユーザの現行活動に関する記録済みのパフォーマンスデータに基づいてユーザの将来のパフォーマンスを推定することに基づいて決定されたフィードバックデータの例は以下を含む。
【０１７７】
「８０Ｐａｒａｄｉｓｅ  Ｌｏｏｐルートに入って３４マイルです。現在のペースでは、２時間１５分後、４：３０ｐｍにゴールします」
【０１７８】
「Ｐａｒａｄｉｓｅ  Ｌｏｏｐルートのおよそ半分です。あなたの全平均ペースでは、４５分でゴールします」
【０１７９】
「Ｐａｒａｄｉｓｅ  Ｌｏｏｐルートのおよそ半分です。現在の平均ペースでは、３５分でゴールします」
【０１８０】
「Ｐａｒａｄｉｓｅ  Ｌｏｏｐルートのおよそ半分です。平均的なライダーでは、４５分でゴールです」
【０１８１】
セグメントでのユーザの現行活動に関するパフォーマンスデータを、同じセグメントでのそのユーザの履歴パフォーマンスデータと比較することに基づいて決定されたフィードバックデータの例は以下を含む。
【０１８２】
「Ｏｌｄ  Ｌａ  Ｈｏｎｄａでの自己最高記録を２２秒更新しました」
【０１８３】
「Ｏｌｄ  Ｌａ  Ｈｏｎｄａで３位の自己記録が出ました。１ヶ月前の自己最高記録と１３秒の差です」
【０１８４】
「現在Ｏｌｄ  Ｌａ  Ｈｏｎｄａの中間地点です。自己最高記録のペースを１１秒上回っています」
【０１８５】
「現在Ｏｌｄ  Ｌａ  Ｈｏｎｄａの中間地点です。自己最高記録のペースを７秒下回っています」
【０１８６】
セグメントでのユーザの現行活動に関するパフォーマンスデータを、同じセグメントでの他のユーザの履歴または同時パフォーマンスデータと比較することに基づいて決定されたフィードバックデータの例は以下を含む。
【０１８７】
「Ｏｌｄ  Ｌａ  Ｈｏｎｄａの最高記録を更新しました。Ｍａｒｋ  Ｓｈａｗの以前の記録を２２秒上回りました」。この例では、Ｍａｒｋ  Ｓｈａｗに関連するデータは、履歴であり、Ｏｌｄ  Ｌａ  Ｈｏｎｄａでのユーザの現行活動と同時進行のデータではない。
【０１８８】
「Ｏｌｄ  Ｌａ  Ｈｏｎｄａで２８位になりました。２７位のＡａｒｏｎ  Ｆｏｓｔｅｒと１５秒の差です」。図２５は、いくつかの実施形態に従って、「Ｍａｒｉｎｃｅｌｌｏ  Ｔｒａｉｌ」セグメントで完了したエフォートに関する順位表（Ｌｅａｄｅｒｂｏａｒｄ）を表示したユーザインターフェースのスクリーンショットを示す図である。この例のスクリーンショットは、スマートフォンデバイスのアプリケーションに関連する。スクリーンショットに示すように、セグメントを完了した様々なユーザ（Ｃｈｒｉｓｔｉａｎ  Ｈｏｂｂｓ、Ａａｒｏｎ  Ｆｏｓｔｅｒ、Ｍａｒｋ  Ｓｈａｗ、Ｊａｎｅ  Ｍｉｔｃｈｅｌｌ、および、Ｒｉｃｈ  Ａｄａｍｓ）が、それぞれのセグメント完了タイムに基づいて順位表に順位付けされている。この例では、セグメントでの活動を完了したばかりの現行ユーザＭａｒｋ  Ｓｈａｗは、順位表の２７位に位置するＡａｒｏｎ  Ｆｏｓｔｅｒの次に順位付けされる。
【０１８９】
「現在の順位：１位Ｍａｒｋ  Ｓ．、２位Ｃｈｒｉｓ  Ｄ．、３位Ｊｏｈｎ  Ｄ．  あなたは現在１７位で、トップとの差は４分３０秒です」。この例に示すように、（ユーザが身体活動を完了した後に、ユーザだけの順位表を決定するのではなく）、ユーザがまだ身体活動を行っている間に、ユーザおよびユーザと同じセグメント上のその他の同時ユーザとについて、順位表が決定されうる。
【０１９０】
「現在、Ｍａｒｋ  Ｓｈａｗのタイムを１３秒上回り、３００メートル先にいます」。この例では、Ｍａｒｋ  Ｓｈａｗもユーザの現行活動と同じセグメントで活動を行っているため、Ｍａｒｋ  Ｓｈａｗに関するデータは同時データである。
【０１９１】
「現在、Ｍａｒｋ  Ｓｈａｗのタイムを１３秒下回り、３００メートル後ろにいます」
【０１９２】
「Ｍａｒｋは、Ａｌｐｉｎｅ  Ｄａｍ登山道を終えたところです。２人ともＡｌｐｉｎｅ  Ｄａｍ  Ｍｔ．  Ｔａｍ  Ｌｏｏｐを歩き続ければ、現在のペースでは３０分で追いつきます」
【０１９３】
「Ｐａｒａｄｉｓｅ  Ｌｏｏｐルートに、２人のライダーが前にいます。３０秒前方にＭａｒｋ  Ｓ．、４５秒前方にＣｈｒｉｓ  Ｄ．。１人のライダーが後ろにいます。５分後方にＰａｎ  Ｔ．」
【０１９４】
ユーザの現行活動に関連する位置情報データを、格納されたセグメントデータと比較することに基づいて検出された近くのセグメント（例えば、ユーザは現在そこにいないが近くにいるセグメント）を含むフィードバックデータの例は以下を含む。
【０１９５】
「Ｍａｒｋ  Ｓｈａｗは５．０マイル離れています。彼は、Ｐａｒａｄｉｓｅ  Ｌｏｏｐルートのおよそ半分に到達しそうです。今日、彼はすでに１６マイル進んでいます」
【０１９６】
「距離１．５マイル、標高差１５００フィートの新しいカテゴリ２の登山道を発見しました。この登山道を保存して名前をつけますか？」
【０１９７】
図２６は、いくつかの実施形態に従って、ユーザの現行活動の近くに位置する検出されたセグメント（「登山道（ｃｌｉｍｂｓ）」）のリストを表示したユーザインターフェースのスクリーンショットを示す図である。この例のスクリーンショットは、スマートフォンのアプリケーションに関連する。例に示すように、近くのセグメントのリストに含まれる各エントリは、セグメントの物理的特徴のいくつかと共にリストされている。
【０１９８】
図２７は、いくつかの実施形態に従って、ユーザの現行活動の近くに位置する検出されたセグメント（「登山道（ｃｌｉｍｂｓ）」）の地図（ｍａｐ）を表示したユーザインターフェースのスクリーンショットを示す図である。この例のスクリーンショットは、スマートフォンのアプリケーションに関連する。例において、紫色のピンは、検出された各セグメントが始まる場所を示す。
【０１９９】
検出された近くの他のユーザに通知を送信することを含むフィードバックデータの例は以下を含む。
【０２００】
「Ｍａｒｋ  Ｓｈａｗは１．０マイル離れています。彼はＡｌｐｉｎｅ  Ｄａｍ登山道を終えたところです。２人ともＡｌｐｉｎｅ  Ｄａｍ  Ｍｔ．  Ｔａｍ  Ｌｏｏｐを歩き続ければ、現在のペースでは３０分で追いつきます。彼に待つように通知を送りますか？」
【０２０１】
近くのユーザと出会うことに関する指摘を含むフィードバックデータの例は以下を含む。
【０２０２】
「Ｍａｒｋ  Ｓ．とＣｈｒｉｓ  Ｄ．が、Ｐａｒａｄｉｓｅ  Ｌｏｏｐルートの出発地点から１０分進んだ所で待っています」
【０２０３】
「お気に入りのライディンググループのライダーが、現在のセグメントで、およそ５分後方にいます」
【０２０４】
検出された近くの他のユーザに挑戦状を送信することを含むフィードバックデータの例は以下を含む。
【０２０５】
「Ｍａｒｋ  Ｓ．は１．０マイル離れています。Ｏｌｄ  Ｌａ  Ｈｏｎｄａで勝負をする旨の挑戦状を送りますか？彼の自己最高記録は、あなたを２２秒上回っています。グッドラック！」
【０２０６】
ユーザの個人的成果の指摘を含むフィードバックデータの例は以下を含む。
【０２０７】
「今週、１００マイルを達成しました。おめでとうございます！」
【０２０８】
「今月、２００マイルを達成しました。おめでとうございます！」
【０２０９】
いくつかの実施形態では、ユーザまたはデバイスに対して設定されたパラメータにより、ユーザに提供されたどのフィードバックデータを１または複数のソーシャルネットワーク（例えば、Ｆａｃｅｂｏｏｋ）で共有するのかが決定されうる。例えば、ユーザが身体活動を開始する前に設定されたパラメータにより、ユーザの身体活動中、ユーザが現在、セグメントの順位表の１位であった場合に、その記事をユーザのＦａｃｅｂｏｏｋのウォールに投稿するように指示することができる。例えば、サードパーティのサーバ（Ｆａｃｅｂｏｏｋプラットフォームをサポートするサーバなど）と通信するために、セグメントマッチングサーバ１５０８などのセグメントマッチングサーバは、適切なＡＰＩおよび認証情報を用いてＦａｃｅｂｏｏｋサーバと通信することができる。記事がソーシャルネットワークで共有されると、ソーシャルネットワークの友達またはその他のユーザが、その記事に関する選択を行いうる（すなわち、ユーザに仮想の賞賛を与えることができる）。そして、例えば、ソーシャルネットワークでの他のユーザの選択をユーザに知らせるために、その選択は、ユーザのデバイスに送信されてよい。
【０２１０】
いくつかの実施形態において、ユーザに対して設定されるパラメータは、他のユーザがユーザの現行活動のリアルタイムの進捗を見ることができるか否かを決定してもよく、そうである場合に、どの他のユーザに閲覧を許可するのかを決定しうる。例えば、セグメントマッチングサーバおよび／またはサードパーティのサーバ（ソーシャルネットワークをサポートするサーバなど）に関連するウェブサイトで、ユーザの現行活動の視覚的表現が提示されてよく、その視覚的表現は、活動が一致したセグメントに沿ってユーザが進むにつれて更新されうる。視覚的表現は、地図に沿ったマーカ、および／または、セグメントでのユーザのパフォーマンスデータに関する他のデータを含みうる。例えば、身体活動を開始する前に、ユーザは、活動中の一致セグメントに沿った自分のリアルタイムの進捗を共有したいこと、そして、誰がその進捗を閲覧できるのかを示すために、パラメータを設定できる。例えば、ユーザは、特定の他のユーザ（例えば、ソーシャルネットワークのユーザの友達）だけに活動中の自分の進捗を閲覧する許可を与えてもよいし、任意の他のユーザが自分の進捗を閲覧することを許可するように選択してもよい。いくつかの実施形態において、セグメントに沿ったユーザのリアルタイムの進捗を閲覧する許可を有する他のユーザは、ユーザの活動がまだ続いている間に、デバイス（例えば、携帯型デバイスまたはデスクトップコンピュータ）を用いて適切なウェブサイト（例えば、セグメントマッチングサーバおよび／またはソーシャルネットワークに関連するウェブサイト）にアクセスすることによって、進捗を閲覧することができる。いくつかの実施形態において、閲覧しているユーザは、ユーザのリアルタイムの進捗に関する選択を行うこともできる（すなわち、仮想の賞賛をユーザに与える）。そして、例えば、ウェブサイトでの他のユーザの選択をユーザに知らせるために、その選択は、ユーザのデバイスに送信されてよい。
【０２１１】
上述の実施形態は、理解しやすいようにいくぶん詳しく説明されているが、本発明は、提供された詳細事項に限定されるものではない。本発明を実施する多くの代替方法が存在する。開示された実施形態は、例示であり、限定を意図するものではない。
適用例１：リアルタイムのセグメントパフォーマンス情報を提供する方法であって、
それまでに記録された位置情報の少なくとも一部に少なくとも部分的に基づいて、ユーザの現行活動に関連するセグメントを決定し、
前記セグメントでの前記ユーザの現行活動に関するリアルタイムのセグメントパフォーマンス情報を伝達すること、
を備える、方法。
適用例２：適用例１に記載の方法であって、前記ユーザの現行活動に関連する前記セグメントの決定は、前記ユーザの現行活動が前記セグメントに一致するか否かを判定することを含む、方法。
適用例３：適用例２に記載の方法であって、前記ユーザの現行活動が前記セグメントに一致するか否か判定は、前記それまでに記録された位置情報の少なくとも一部が、前記セグメントに関連付けられている仮想スタートラインを交差しているか否かを判定することを含む、方法。
適用例４：適用例２に記載の方法であって、前記ユーザの現行活動が前記セグメントに一致するか否かの判定は、前記それまでに記録された位置情報の少なくとも一部が、前記セグメントに関連付けられている部分を交差しているか否かを判定することを含む、方法。
適用例５：適用例１に記載の方法であって、前記位置情報は、全地球測位システム（ＧＰＳ）のポイントと、各ＧＰＳポイントにおける関連のタイムスタンプとを含む、方法。
適用例６：適用例１に記載の方法であって、さらに、デバイスによるデータの送信に関するユーザ設定可能な選択を受信することであって、１または複数のトリガイベント定義を受信すること、期間定義を受信すること、バッテリ寿命の節約に関する１または複数の定義を受信することの内の１または複数を含む、方法。
適用例７：適用例１に記載の方法であって、前記リアルタイムのセグメントパフォーマンス情報の伝達は、デバイスに送信されたフィードバックデータに少なくとも部分的に基づく、方法。
適用例８：適用例１に記載の方法であって、前記リアルタイムのセグメントパフォーマンス情報の伝達は、デバイスで生成されたフィードバックデータに少なくとも部分的に基づく、方法。
適用例９：適用例１に記載の方法であって、前記セグメントは、潜在的にマッチングされるセグメントのユーザ選択に関連する、方法。
適用例１０：適用例１に記載の方法であって、さらに、
潜在的にマッチングされる１または複数のセグメントに関するデータをデバイスに取得することを備え、
前記取得されたセグメントデータは、前記デバイスにローカルに格納され、前記位置情報の前記少なくとも一部、および前記ユーザの現行活動に関する他のデータは、前記デバイスにおいて前記ローカルに格納されたデータと比較される、方法。
適用例１１：適用例１に記載の方法であって、前記パフォーマンス情報は、前記セグメントでの前記ユーザの現行活動に関する前記パフォーマンスデータと、前記セグメントに関連する格納された履歴パフォーマンスデータとの間の比較結果を含む、方法。
適用例１２：適用例１に記載の方法であって、前記格納された履歴パフォーマンスデータは、前記ユーザおよび別のユーザの一方または両方に関するデータを含む、方法。
適用例１３：適用例１に記載の方法であって、前記パフォーマンス情報は、前記セグメントでの前記ユーザの現行活動に関する前記パフォーマンスデータと、前記セグメントでの他のユーザの現行活動に関する格納された同時パフォーマンスデータとの間の比較結果を含む、方法。
適用例１４：適用例１に記載の方法であって、さらに、前記ユーザの現行活動に関する前記パフォーマンスデータと比較されるパフォーマンスデータを有する１または複数の他のユーザに関するユーザ設定可能な選択を受信することを備える、方法。
適用例１５：適用例１に記載の方法であって、さらに、同時性の範囲に関するユーザ設定可能な選択を受信し、
前記範囲内のユーザ活動のパフォーマンスデータは互いに比較される、方法。
適用例１６：適用例１に記載の方法であって、さらに、サードパーティが運営するソーシャルネットワークに前記パフォーマンス情報の少なくとも一部を送信することを備える、方法。
適用例１７：適用例１に記載の方法であって、さらに、前記パフォーマンス情報の前記送信された一部に少なくとも部分的に基づいて、前記サードパーティが運営するソーシャルネットワークから応答を受信することを備える、方法。
適用例１８：適用例１に記載の方法であって、さらに、前記セグメントでの前記ユーザの現行活動に関する現在の進捗を決定することを備える、方法。
適用例１９：適用例１に記載の方法であって、さらに、別のセグメントが前記ユーザの現行活動の現在位置の近くに存在するか否かを判定することを備える、方法。
適用例２０：リアルタイムのセグメントパフォーマンス情報を提供するためのシステムであって、
プロセッサであって、
それまでに記録された位置情報の少なくとも一部に少なくとも部分的に基づいて、ユーザの現行活動に関連するセグメントを決定し、
前記セグメントでの前記ユーザの現行活動に関するリアルタイムのセグメントパフォーマンス情報を伝達するよう構成されているプロセッサと、
前記プロセッサに接続され、前記プロセッサに命令を提供するよう構成されているメモリと、
を備える、システム。
適用例２１：適用例２０に記載のシステムであって、前記ユーザの現行活動に関連する前記セグメントの決定は、前記ユーザの現行活動が前記セグメントに一致するか否かを判定することを含む、システム。
適用例２２：適用例２０に記載のシステムであって、前記プロセッサは、さらに、デバイスによるデータの送信に関するユーザ設定可能な選択を受信することであって、１または複数のトリガイベント定義を受信すること、期間定義を受信すること、バッテリ寿命の節約に関する１または複数の定義を受信することの内の１または複数を含む、デバイスによるデータの送信に関するユーザ設定可能な選択を受信するように構成されている、システム。
適用例２３：適用例２０に記載のシステムであって、前記リアルタイムのセグメントパフォーマンス情報の伝達は、デバイスに送信されたフィードバックデータに少なくとも部分的に基づく、システム。
適用例２４：適用例２０に記載のシステムであって、前記リアルタイムのセグメントパフォーマンス情報の伝達は、デバイスで生成されたフィードバックデータに少なくとも部分的に基づく、システム。
適用例２５：適用例２０に記載のシステムであって、前記プロセッサは、さらに、
潜在的にマッチングされる１または複数のセグメントに関するデータをデバイスに取得するように構成されており、
前記取得されたセグメントデータは、前記デバイスにローカルに格納され、前記位置情報の前記少なくとも一部、および前記ユーザの現行活動に関する他のデータは、前記デバイスにおいて前記ローカルに格納されたデータと比較される、システム。
適用例２６：適用例２０に記載のシステムであって、前記パフォーマンス情報は、前記セグメントでの前記ユーザの現行活動に関する前記パフォーマンスデータと、前記セグメントに関連する格納された履歴パフォーマンスデータとの間の比較結果を含む、システム。
適用例２７：適用例２０に記載のシステムであって、前記パフォーマンス情報は、前記セグメントでの前記ユーザの現行活動に関する前記パフォーマンスデータと、前記セグメントでの他のユーザの現行活動に関する格納された同時パフォーマンスデータとの間の比較結果を含む、システム。
適用例２８：適用例２０に記載のシステムであって、前記プロセッサは、さらに、前記ユーザの現行活動に関する前記パフォーマンスデータと比較されるパフォーマンスデータを有する１または複数の他のユーザに関するユーザ設定可能な選択を受信するように構成されている、システム。
適用例２９：適用例２０に記載のシステムであって、前記プロセッサは、さらに、同時性の範囲に関するユーザ設定可能な選択を受信するように構成されており、
前記範囲内のユーザ活動のパフォーマンスデータは互いに比較される、システム。
適用例３０：リアルタイムのセグメントパフォーマンス情報を提供するためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、持続性のコンピュータ読み取り可能な記憶媒体内に具現化され、
それまでに記録された位置情報の少なくとも一部に少なくとも部分的に基づいて、ユーザの現行活動に関連するセグメントを決定するためのコンピュータ命令と、
前記セグメントでの前記ユーザの現行活動に関するリアルタイムのセグメントパフォーマンス情報を伝達するためのコンピュータ命令と、
を備える、コンピュータプログラム製品。
【図１】
0005748900.tif 000002
【図２Ａ】
0005748900.tif 000003
【図２Ｂ】
0005748900.tif 000004
【図３】
0005748900.tif 000005
【図４】
0005748900.tif 000006
【図５】
0005748900.tif 000007
【図６】
0005748900.tif 000008
【図７】
0005748900.tif 000009
【図８】
0005748900.tif 000010
【図９】
0005748900.tif 000011
【図１０Ａ】
0005748900.tif 000012
【図１０Ｂ】
0005748900.tif 000013
【図１１Ａ】
0005748900.tif 000014
【図１１Ｂ】
0005748900.tif 000015
【図１２】
0005748900.tif 000016
【図１３】
0005748900.tif 000017
【図１４】
0005748900.tif 000018
【図１５】
0005748900.tif 000019
【図１６】
0005748900.tif 000020
【図１７】
0005748900.tif 000021
【図１８】
0005748900.tif 000022
【図１９】
0005748900.tif 000023
【図２０】
0005748900.tif 000024
【図２１】
0005748900.tif 000025
【図２２】
0005748900.tif 000026
【図２３】
0005748900.tif 000027
【図２４】
0005748900.tif 000028
【図２５】
0005748900.tif 000029
【図２６】
0005748900.tif 000030
【図２７】
0005748900.tif 000031