(57)【特許請求の範囲】
【請求項１】
クライアントデバイスのためにジオフェンスをプロビジョニングする方法であって、前記方法が、コンピューティングデバイスにおいて実施され、
１つまたは複数の地理的エンティティを備える地図を表示することと、前記表示された前記１つまたは複数の地理的エンティティの各々は、ユーザによって選択可能であり、かつ前記地理的エンティティの境界を定義する予め記憶されたゾーン輪郭描写情報に関連する、
前記表示に応答して、前記１つまたは複数の地理的エンティティについての前記ユーザによる選択を受信することと、
前記受信に応答して、前記選択された地理的エンティティに対応する、少なくとも１つのジオフェンスを作成することと
を備え、前記少なくとも１つのジオフェンスを作成することは、前記少なくとも１つのジオフェンスが、前記予め記憶されたゾーン輪郭描写情報によって定義された境界を含むように、前記１つまたは複数の選択された地理的エンティティの各々に関連する前記予め記憶されたゾーン輪郭描写情報を識別することを含む、方法。
【請求項２】
前記地図を表示することが、
前記ユーザによって選択可能な複数の地理的エンティティを表示することと、
前記複数の地理的エンティティのうちの第１の地理的エンティティを前記ユーザが選択するための推奨を表示することと
をさらに備える、請求項１に記載の方法。
【請求項３】
前記ユーザが、１つまたは複数のキーワードを入力することによって、１つまたは複数の地理的エンティティを選択できるようにするインターフェースを提供することと、
前記ユーザによって入力されるキーワードを受信することと、
第２の地理的エンティティが前記入力されたキーワードに一致する属性に関連することを決定することに応答して、前記第２の地理的エンティティに対応するジオフェンスを作成することと
をさらに備える、請求項１に記載の方法。
【請求項４】
前記ユーザが、１つまたは複数のキーワードを入力することによって、前記地図を変更できるようにするインターフェースを提供することと、
前記ユーザによって入力されるキーワードを受信することと、
前記複数の地理的エンティティの第３の地理的エンティティの属性が、前記入力されたキーワードに一致しないことを決定することに応答して、前記第３の地理的エンティティを表示するのを中止することと
をさらに備える、請求項１に記載の方法。
【請求項５】
前記推奨を表示することが、
前記複数の地理的エンティティのうちの前記第１の地理的エンティティを強調表示すること、前記複数の地理的エンティティのうちの前記第１の地理的エンティティの太い輪郭を示すこと、またはそれらの組合せのうちの少なくとも１つを備える第１の描写方法を使用して前記複数の地理的エンティティのうちの前記第１の地理的エンティティを表すこと
を備える、請求項２に記載の方法。
【請求項６】
前記複数の地理的エンティティのうちの前記第１の地理的エンティティが推奨基準を満たすことを決定することに応答して、前記第１の描写方法を使用して前記複数の地理的エンティティのうちの前記第１の地理的エンティティを表すことが実行される、
請求項５に記載の方法。
【請求項７】
前記複数の地理的エンティティのうちの前記第１の地理的エンティティが前記推奨基準を満たすことを決定することが、前記複数の地理的エンティティのうちの前記第１の地理的エンティティの前の選択の数に基づく、または前記複数の地理的エンティティのうちの前記第１の地理的エンティティの近くで利用可能なモバイルデバイス位置特定リソースを示す情報に基づく、請求項６に記載の方法。
【請求項８】
前記少なくとも１つのジオフェンスを作成することが、前記予め記憶されたゾーン輪郭描写情報を参照するコードを生成することを含む、請求項１に記載の方法。
【請求項９】
モバイルデバイスのためにジオフェンスをプロビジョニングする方法であって、前記方法が、コンピューティングデバイスにおいて実施され、
１つまたは複数の地理的エンティティの各々に関連する予め記憶されたゾーン輪郭描写情報を記憶することと、前記予め記憶されたゾーン輪郭描写情報は、前記地理的エンティティの境界を定義する、
ユーザによって提供される第１の入力を受信することと、前記第１の入力が１つまたは複数のキーワードを含む、
前記１つまたは複数の地理的エンティティのうちの第１の地理的エンティティが前記１つまたは複数のキーワードに一致する属性を有することを決定することと、
前記第１の地理的エンティティに対応するジオフェンスを作成することと
を備え、前記ジオフェンスを作成することは、前記ジオフェンスが前記予め記憶されたゾーン輪郭描写情報によって定義された境界を含むように、前記地理的エンティティに関連する前記予め記憶されたゾーン輪郭描写情報を識別することを含む、方法。
【請求項１０】
前記ユーザによって入力される論理的表現を受信することと、前記論理的表現が複数のキーワードと少なくとも１つの論理演算子とを含む、
前記論理的表現を満たすように、前記複数のキーワードに一致する属性を有する追加の地理的エンティティを識別することと、
前記追加の地理的エンティティを識別することに応答して、前記追加の地理的エンティティに対応するジオフェンスを作成することと
をさらに備える、請求項９に記載の方法。
【請求項１１】
前記ユーザから入力を受信することと、前記入力が複数のキーワードを含む、
第２の地理的エンティティの属性と前記複数のキーワードとの間の属性−キーワードの一致の第１の量と、
第３の地理的エンティティの属性と前記複数のキーワードとの間の属性−キーワードの一致の第２の量と
を比較することと、
前記第１の量が前記第２の量よりも大きいことを決定することに応答して、前記第２の地理的エンティティに対応する第２のジオフェンスを作成することと
をさらに備える、請求項１０に記載の方法。
【請求項１２】
前記比較の結果に基づいて前記第３の地理的エンティティよりも前記第２の地理的エンティティを優先させることと、
前記第３の地理的エンティティよりも前記第２の地理的エンティティが優先されることに基づいて、第１の組の位置特定情報のソースおよび第２の組の位置特定情報のソースを定義することと、
前記第２の地理的エンティティに対して前記モバイルデバイスの第１の位置を決定することと、前記第１の位置を決定することが、前記第１の組の前記ソースを使用することを含む、
前記第３の地理的エンティティに対して前記モバイルデバイスの第２の位置を決定することと、前記第２の位置を決定することが、前記第２の組の前記ソースを使用することを含む、
をさらに備える、請求項１１に記載の方法。
【請求項１３】
前記第１の地理的エンティティに対応するジオフェンスを作成することが、モバイルデバイスが第１の位置にあることを決定することに応答して実行され、前記方法は、
前記第１の地理的エンティティに対応する前記ジオフェンスを作成することの後に、前記モバイルデバイスが第２の位置にあることを決定することと、
前記モバイルデバイスが前記第２の位置にあることを決定することに応答して、第２の地理的エンティティに対応するジオフェンスを作成することと、
前記第２の位置および前記第１の位置を分離する距離を決定することと、
前記距離が距離しきい値を超えることを決定することと、
前記距離が前記距離しきい値を超えることを決定することに応答して、前記第１の地理的エンティティに対応する前記ジオフェンスを非アクティブ化することと
をさらに備える、請求項９に記載の方法。
【請求項１４】
ジオフェンスをプロビジョニングするように構成された装置であって、
メモリと、
前記メモリに結合され、請求項１−８に記載のいずれか一項のステップを実行するように構成されるプロセッサと
を備える、装置。
【請求項１５】
ジオフェンスをプロビジョニングするための装置であって、
請求項９において言及されたような予め記憶されたゾーン輪郭描写情報を記憶するように構成されたメモリと、
前記メモリに結合され、請求項９−１３のいずれか一項のステップを実行するように構成されるプロセッサと
を備える、装置。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]本開示の態様は、ジオフェンス（geofence）の自動プロビジョニング（automated provisioning）に関する。ジオフェンスは、一般に、たとえばオフィス、キャンパス、小売空間など地理的エリア上で定義される閉じられた境界である。ひとたび定義されると、ジオフェンスによって、位置推定機能を有するモバイルデバイスは、それらがジオフェンス内にあるか外にあるかを決定することが可能である。この決定は、モバイルデバイスとともに実行される多くの有用な機能の基礎を形成することができる。
【０００２】
[0002]たとえば、ジオフェンスは、喫茶店のフットプリントの周りで定義され得る。次いで、顧客によって携帯されているモバイルデバイスは、そのロケーション推定に基づいて、それがジオフェンス内であるか外であるかを決定することが可能である。モバイルデバイス上で実行するアプリは、飲料の選択のメニューを表示し、関連する広告を表示し、顧客の到着を喫茶店に関連するサーバに報告し、および／または他のタスクを実行することができ得、これらはすべて、顧客が喫茶店を表すジオフェンス内に入った旨の決定に基づく。
【０００３】
[0003]ジオフェンスには多くの有用な用途があるが、ジオフェンスの生成は、一般に、退屈な、労働集約的な、およびしばしばスケーリングするのが難しいプロセスである。従来、ジオフェンスは、関連した地理的エリアの地図に基づいて、アプリ開発者によって手動で描かれる。たとえば、喫茶店のアプリの開発者は、喫茶店および周囲のエリアの地理的なタグが付けられた地図で開始し得る。地図を使用して、アプリ開発者は、次いで、ジオフェンスを生成するために、喫茶店のフットプリントの周りに境界を手動で描き得る。これは、一般に、スケーリングするのが難しい労働集約的なプロセスである。
【０００４】
[0004]ソフトウェア開発者がジオフェンスを手動で描くのを支援するツールのライブラリを提供することによって、この問題を軽減することを試みるいくつかのソフトウェア開発キット（ＳＤＫ）が作成されている。しかしながら、ジオフェンスの効率的な、および動的な作成を容易にするジオフェンスをプロビジョニングするための方法および装置の必要性が残る。
【０００５】
[0005]ソフトウェア開発キットは、開発者が、モバイルアプリケーションソフトウェアの実行の間に使用され得るジオフェンスを作成できるようにするビジュアルプログラミング機能を提供する。ジオフェンスは、モバイルデバイスアプリケーションソフトウェア内で多種多様な用途を有する。現在、ジオフェンスはいくつかのソフトウェア開発キットを使用することによって作成され得るが、ジオフェンスを作成することは、動的ではなく、スケーラブルでもない方法で、ジオフェンスの選好を手動で入力することを伴う。
【発明の概要】
【０００６】
[0006]いくつかの方法、装置、およびコンピュータプログラム製品について記載され、方法、装置、およびコンピュータプログラム製品は、ユーザによって選択可能な１つまたは複数の地理的エンティティ（entity）を備える地図を表示し、１つまたは複数の地理的エンティティのうちの少なくとも１つの地理的エンティティのユーザによる選択に応答して、選択された少なくとも１つの地理的エンティティに対応する少なくとも１つのジオフェンスを作成するために使用され得る。追加のステップまたは特徴も開示され、追加のステップまたは特徴は、ユーザによって選択可能な複数の地理的エンティティを表示することと、複数の地理的エンティティのうちの第１の地理的エンティティをユーザが選択するための推奨を表示することとを含む。さらに別の動作は、１つまたは複数のキーワードを入力することによって１つまたは複数の地理的エンティティをユーザが選択できるようにするインターフェースを提供することと、ユーザによって入力されるキーワードを受信することと、第２の地理的エンティティが入力されたキーワードに一致する属性に関連することを決定することに応答して、第２の地理的エンティティに対応するジオフェンスを作成することとを含み得る。
【０００７】
[0007]方法、装置、およびコンピュータプログラム製品は、ユーザによって提供される第１の入力を受信することと、第１の入力が１つまたは複数のキーワードを含む、第１の地理的エンティティが、１つまたは複数のキーワードに一致する属性を有することを決定することに応答して、第１の地理的エンティティに対応するジオフェンスを作成することとも伴い得る。本明細書で開示する追加のステップおよびプロセスは、ユーザによって入力される論理的表現を受信することと、論理的表現が複数のキーワードと少なくとも１つの論理演算子とを含む、論理的表現を満たすように、複数のキーワードに一致する属性を有する追加の地理的エンティティを識別することと、追加の地理的エンティティを識別することに応答して、追加の地理的エンティティに対応するジオフェンスを作成することとを含む。
【０００８】
[0008]また、いくつかの方法、装置、およびコンピュータプログラム製品について記載され、方法、装置、およびコンピュータプログラム製品は、メモリと、プロセッサとを含み得、プロセッサは、メモリに結合され、ユーザによって選択可能な１つまたは複数の地理的エンティティを備える地図を表示し、少なくとも１つの地理的エンティティのユーザによる選択に応答して、選択された少なくとも１つの地理的エンティティに対応する少なくとも１つのジオフェンスを作成するように構成されている。
【０００９】
[0009]地図は、複数のエンティティを備え得、プロセッサは、さらに、複数の地理的エンティティのうちの第１の地理的エンティティをユーザが選択する推奨を表示し、ユーザが、１つまたは複数のキーワードを入力することによって、地理的エンティティを選択できるようにするインターフェース機能を提供し、ユーザによって入力されるキーワードを受信し、第２の地理的エンティティが入力されたキーワードに一致する属性に関連することを決定することに応答して、第２の地理的エンティティに対応するジオフェンスを作成するように構成され得る。
【００１０】
[0010]本開示の態様が例として示される。添付の図では、同様の参照番号は同様の要素を示す。
【図面の簡単な説明】
【００１１】
【図１】[0011]ソフトウェア開発キット（ＳＤＫ）がその中で動作し得るシステムの簡略図。
【図２】[0012]本明細書で説明するいくつかの機能とのソフトウェア開発キットのインターフェースを示す図。
【図３】[0013]ＳＤＫインターフェースの一部として提示され得る例示的なゾーン表示地図。
【図４】[0014]本開示によるＳＤＫによって使用され得るゾーン情報データライブラリ。
【図５】[0015]ジオフェンスの作成を可能にするいくつかの機能を有するＳＤＫインターフェース。
【図６】[0016]ジオフェンスの作成を可能にするいくつかの機能を有するＳＤＫインターフェース。
【図７】[0017]ジオフェンスの作成を可能にするいくつかの機能を有するＳＤＫインターフェース。
【図８】[0018]ジオフェンスの作成を可能にするいくつかの機能を有するＳＤＫインターフェース。
【図９】[0019]ジオフェンスの作成を可能にするいくつかの機能を有するＳＤＫインターフェース。
【図１０】[0020]ジオフェンスの作成を可能にするいくつかの機能を有するＳＤＫインターフェース。
【図１１】[0021]ジオフェンスの作成を可能にするいくつかの機能を有するＳＤＫインターフェース。
【図１２】[0022]ジオフェンスの作成を可能にするいくつかの機能を有するＳＤＫインターフェース。
【図１３】[0023]ジオフェンスの作成を可能にするいくつかの機能を有するＳＤＫインターフェース。
【図１４】[0024]ジオフェンスの作成を可能にするいくつかの機能を有するＳＤＫインターフェース。
【図１５】[0025]ジオフェンスの作成を可能にするいくつかの機能を有するＳＤＫインターフェース。
【図１６】[0026]ＳＤＫインターフェースゾーン地図表示およびいくつかの輪郭描写されたゾーンのクローズビュー。
【図１７】[0027]ＳＤＫインターフェースゾーン地図表示および表示上に描かれたいくつかの輪郭描写されたゾーンのクローズビュー。
【図１８】[0028]本開示による、例示的な動作を示す流れ図。
【図１９】[0029]本開示による、例示的な動作を示す流れ図。
【図２０】[0030]本開示による、例示的な動作を示す流れ図。
【図２１】[0031]本開示による、例示的な動作を示す流れ図。
【発明を実施するための形態】
【００１２】
[0032]次に、本出願の一部を形成する、添付の図面に関していくつかの例示的な実施形態について説明する。本開示の１つまたは複数の態様が実装され得る、特定の実施形態について以下で説明するが、本開示の範囲または添付の特許請求の範囲の趣旨を逸脱することなく、他の実施形態が使用される場合があり、様々な変更が行われる場合がある。図面に示されるすべての詳細は例示のために提供されているにすぎず、したがって、本明細書で説明する方法のいくつかの実装形態は、容易に理解され、実施され得ることを理解されたい。したがって、そのような詳細またはそのような詳細の説明は、本開示の範囲を制限する、定義する、または輪郭描写するためのものと解釈されないものとする。
【００１３】
[0033]図１は、ジオフェンスがカスタマイズされ、選択され、アクティブ化されることを可能にするためのシステム１００の簡略図を示す。図示のように、システム１００は、たとえばモバイルデバイス１６２など、クライアントモバイルデバイスによって実行されるべきモバイルアプリケーションコードを書き込むためのソフトウェア開発キット（ＳＤＫ）１０１を提供する。本開示は、ＳＤＫ内で容易に実施され得るいくつかの技法、方法、および動作について記載する。しかしながら、ＳＤＫは、これらの技法、方法、および動作が実施され得るいくつかのソフトウェアプラットフォームのうちの１つにすぎない。これらの技法、方法、および動作のうちの任意のものは、モバイルデバイスであろうと、タブレット、ラップトップ、ＰＣ、または他のそのようなコンピューティングもしくは通信装置であろうと、他のタイプのユーザまたは開発者インターフェースもしくはソフトウェアにおいて実施され得る。本開示は、ＳＤＫを伴う実装形態に加えて、そのような各実装形態をカバーすることを理解されたい。しかしながら、説明を容易にするために、本明細書で説明するいくつかの技術的特徴は、何らかの方法でＳＤＫを含む実装形態に関して説明される。言及のこの選択は、いかなる形でも本開示の範囲に影響を及ぼすものと解釈されないものとする。
【００１４】
[0034]ＳＤＫは、モバイルアプリケーション開発者によって使用されるコンピュータ端末１０４のメモリ１０５にロードされ得るＳＤＫソフトウェア１０２によって実施され、制御される。ソフトウェア１０２は、コンピュータ端末１０４内のプロセッサ１０３によって実行されるコードを含み得、したがって、ＳＤＫ１０１は、コンピュータ端末１０４にインストールされ、そこにおいて実行され得る。以下、ステップ、プロセス、方法、または計算がＳＤＫ１０１によって実行され、容易にされるものとして説明される場合、そのようなアクションは、ＳＤＫ実装ソフトウェア１０２を実行しているプロセッサ（たとえば、プロセッサ１０３、または同様に構成されたプロセッサの集合）によって実行されるものと理解され得る。そのようなステップは、特に、プロセッサ１０３によって利用される情報のソースとして働き得る他の構成要素も含み得る。
【００１５】
[0035]コンピュータ端末１０４は、モバイルアプリケーションを開発し、符号化するプロセスの間、アプリケーション開発者による使用に適する任意のタイプのコンピューティング装置とすることができる。コンピュータ端末１０４は、最初に、リモートサーバ１９２からＳＤＫ実装ソフトウェア１０２をダウンロードすることによって、ＳＤＫ実装ソフトウェア１０２にアクセスすることができ得る。代替的に、ソフトウェア１０２は、メモリまたはコンピュータ端末１０４と互換性があり、プロセッサ１０３によって読取り可能である何らかの他のタイプの記憶デバイスに、実行ファイルで記憶され得る。
【００１６】
[0036]ＳＤＫ実装ソフトウェア１０２のインストール後、プロセッサ１０３は、開発者入力１５０に従ってＳＤＫ１０１をアクティブ化し、制御するために、ＳＤＫソフトウェア１０２を実行する。ＳＤＫ１０１をアクティブ化することは、ユーザコンピューティング端末１０４においてＳＤＫビジュアルインターフェース１０６を表示することを伴う。インターフェース１０６は、開発者が、インターフェース１０６において入力機能を操作することによって、ＳＤＫ１０１と対話することができるようなものである。インターフェース１０６は、モバイルアプリケーションソフトウェアを書き込むために開発者が使用することができる表示情報、機能、およびオプションを提供する。インターフェース１０６は、コードを実行可能なモバイルアプリケーションソフトウェアフォーマットに変換するように、開発者が書き込まれたモバイルアプリケーションコードをコンパイルすることができるコンパイラ１３１の使用も可能にする。
【００１７】
[0037]開発者がＳＤＫ１０１を使用してモバイルアプリケーションソフトウェア（モバイルデバイスにおいてインストールされた後に１１３で示される）を生成した後、ソフトウェア１１３は、サーバ１９２にアップロードされ得る。サーバ１９２は、ソフトウェア１１３を記憶し、たとえば１６２で表されるデバイスなど、クライアントモバイルデバイスからソフトウェアダウンロード要求を受信する。クライアントモバイルデバイス１６２がソフトウェアダウンロードの要求を開始すると、サーバ１９２は、要求側デバイスにソフトウェア１１３をダウンロードする。
【００１８】
[0038]図示のように、アプリケーションソフトウェア１１３は、モバイルデバイス受信機１６５を使用してモバイルデバイス１６２において受信される。受信された後、アプリケーションソフトウェア１１３は、モバイルデバイス１６２においてメモリ１６７にインストールされる。ソフトウェア１１３は、モバイルデバイスプロセッサ１６３によってその後実行され得る。ソフトウェアを実行することは、プロセッサ１６３内で動作するモバイルアプリケーション実行モジュール１６９を開くことを伴い得る。モバイルアプリケーションサブモジュールは、コンテンツ制御サブモジュール１７０とジオフェンスアクティブ化サブモジュール１７１とを含み得る。
【００１９】
[0039]コンピューティングデバイス１０４において動作可能なＳＤＫ１０１に関して、ＳＤＫインターフェース１０６は、モバイルアプリケーションソフトウェア１１３の書き込みを行うために開発者が使用し得るビジュアルプログラミング入力機能を提供し得る。インターフェース１６０は、モバイルアプリケーションコードを書き込むとき、開発者が、モバイルアプリケーションソフトウェア１１３内にジオフェンスコードモジュールを容易に作成できるようにするビジュアルプログラミング機能も提供する。ジオフェンスコードモジュールのアプリケーションソフトウェア１１３への組込みによって、ソフトウェアは、モバイルデバイス１６２において実行されると、デバイスプロセッサ１６３に、開発者によって符号化されたジオフェンスモジュール仕様に従ってジオフェンスをアクティブ化させ得る。ソフトウェアは、プロセッサにアクティブなジオフェンス１１１のリストを維持させ、プロセッサがジオフェンスをアクティブ化するたびに、リストを更新させることもでき得る。
【００２０】
[0040]後でより詳細に説明するように、ジオフェンスは、クライアントモバイルデバイスプロセッサ１６３によるモバイルアプリケーションソフトウェア１１３の実行とともに使用される地理的参照である。各ジオフェンスは、地理的エリア（以下「ゾーン（zone）」、「当該ポイント（point of interest）」、もしくは「エンティティ（entity）」とも呼ばれる）、または地理的エリア境界を輪郭描写するために理解される、絶対的もしくは相対的な測地もしくは空間情報（一般に、必ずしもそうではないが、緯度および経度情報）、ならびに情報を使用するための符号化された命令に基づく。ジオフェンスがゾーンを輪郭描写する情報に基づくとき、ジオフェンスは、その輪郭描写されたゾーンに関して定義または作成されると言われる。地理的エリアを輪郭描写する情報のそのような各集合は、以下、ゾーン輪郭描写情報と呼ばれる。ゾーン輪郭描写情報１２２の複数の組は、開発者がその組のうちの１つによって輪郭描写される任意のゾーンに関するジオフェンスを作成できるように、ＳＤＫ１０１によって使用され得る。
【００２１】
[0041]後続の図は、本開示に従って、開発者がモバイルアプリケーションソフトウェア１１３内にジオフェンスを作成できるようにするために、ＳＤＫ１０１がどのように設計され得るかについて詳述する。この点に関して、ＳＤＫ１０１は、開発者が、ゾーン輪郭描写情報１２２をソフトウェア１１３内のジオフェンスモジュールに容易に組み込み、ソフトウェア１１３の実行時にどのような情報が使用されるかを制御するためのコードを提供できるようにする機能を含む。以下、後で説明される理由のために、開発者がジオフェンスを作成するプロセスは、ジオフェンスを「選択する（selecting）」または「選ぶ（choosing）」と互換的に呼ばれ得る。ジオフェンスを選択する際、モバイルデバイス１６２においてモバイルアプリケーションソフトウェア１１３が実行されるとき、ゾーン輪郭描写情報１２２がモバイルデバイスアクティビティ、動作、またはパフォーマンスを制御するための基礎として使用される計算または処理決定に関与するように、コードが書かれる。ジオフェンスは、１組のゾーン輪郭描写情報がモバイルデバイスにおけるそのような計算に最初に使用されるようなときにアクティブ化されるものと理解されたい。
【００２２】
[0042]インターフェース１０６において提供されるいくつかのビジュアルプログラミングツールおよび機能によって、開発者は、地図ゾーンデータライブラリ１２０（以下「データライブラリ（data library）」）に記憶されるデータまたはデータの組を検索し、取り出し、参照することによってジオフェンスコードモジュールを容易に書くことができる。地図ゾーンデータライブラリ１２０は、ＳＤＫ１０１が実行されている間に、コンピューティングデバイス１０４において、またはコンピューティングデバイス１０４が通信するサーバ１９２においてメモリ１０５に記憶され得る。追加または代替として、地図ゾーンデータライブラリ１２０は、たとえば１６２で表されるモバイルデバイスなど、任意の数のクライアントモバイルデバイスにおいて記憶され得る。
【００２３】
[0043]データライブラリ１２０がクライアントモバイルデバイスに排他的に記憶されるとき、ＳＤＫ１０１の動作は、データライブラリがサーバ１６２またはコンピュータ端末１０４に記憶されるときとは、いくつかの点において、わずかに異なり得る。したがって、本開示は、開発者末端１０４、または開発者端末が通信するサーバ１９２においてデータライブラリが記憶されるとき、開発者に提供され得るＳＤＫ１０１機能について最初に説明する。後で、本開示は、データライブラリ１２０が１つまたは複数のクライアントモバイルデバイス１６２に排他的に記憶される実装形態に関連するいくつかの一意のＳＤＫ１０１について説明する。
【００２４】
[0044]データライブラリ１２０は、様々な目的に応え得る。たとえば、データライブラリ１２０は、いくつかの輪郭描写された地理的ゾーンの位置、寸法、特性、および特徴についての情報を記憶し得る。この情報は、あらかじめパッケージされたＳＤＫ１０１の機能として開発者が利用できるようにされており、ＳＤＫビジュアルインターフェース１０６を介してアクセス可能であり得る。後で図を参照して各々説明される、様々なＳＤＫインターフェース１０６の機能によって、開発者は、データライブラリ１２０内の情報を検索し、取り出し、レビューすることができる。他の機能によって、開発者は、開発者がジオフェンスコードモジュールに組み込むことを望む情報を、データライブラリ１２０から迅速に選択することによって、ジオフェンスを作成することができる。さらに他の機能によって、開発者は、この情報のいずれかを実際に見るまたはレビューすることなく、データライブラリ１２０内の情報にジオフェンスコードモジュール基準を知的に書き込むことによってジオフェンスを作成することができる。
【００２５】
[0045]本開示のＳＤＫ１０１は、任意の数の方法でジオフェンスを組み込むアプリケーションソフトウェアを書き込むことを容易にするように設計され得る。たとえば、開発者は、クライアントモバイルデバイス（たとえばデバイス１６２など）が特定のエリアまたはゾーン内にある、またはその近くにある場合のみ、コンテンツが提供されるように、対話型コンテンツの表示をアプリケーションソフトウェアが制御することを意図し得る。開発者は、関連したエリアまたはゾーンに関するジオフェンスを実施するように、ソフトウェア１１３内にジオフェンスモジュールを作成することによって、この結果を達成し得る。
【００２６】
[0046]本明細書で開示されるＳＤＫ１０１の柔軟性の別の例として、ＳＤＫ１０１は、開発者が、ソフトウェアによって実施されるアクティビティを収集する、または報告するデータを制御するために、ジオフェンスモジュールを組み込むアプリケーションソフトウェア１１３を書き込むことができるようにも設計され得る。この場合、モバイルデバイス位置条件が満たされることに応答して、モバイルデバイス１６２に情報をサーバ、他のモバイルデバイス、電子メールアカウントなどに報告させるように、アプリケーションソフトウェア１１３が書かれる。さらに、位置条件は、ジオフェンスモジュールを使用して作成されるジオフェンスに関して定義され得る。したがって、たとえば、モバイルアプリケーションソフトウェア１１３は、デバイス１６２が、開発者がジオフェンスを作成する任意の地理的エリア内に持ち込まれる、またはそこから離れることによって情報の報告がトリガされるように書かれ得る。
【００２７】
[0047]前述のように、ＳＤＫ実装ソフトウェア１０２は、ＳＤＫビジュアルインターフェース１０６が開発者によって動作可能なインタラクティブ機能を表示するように設計され、または書かれ得る。ソフトウェア１０２は、さらに、開発者がインタラクティブ機能の操作を介してアプリケーションソフトウェア１１３にジオフェンスモジュールを書き込むことができるように設計され、または書かれ得る。
【００２８】
[0048]図２は、開発者コンピュータ端末１０４において操作される例示的なＳＤＫインターフェース１０６を表す。図２は、アプリケーションソフトウェア１１３を書き、ソフトウェア内にジオフェンスモジュールを作成するために開発者が使用し得るインタラクティブ機能のいくつかも示す。ＳＤＫインターフェース１０６は、いくつかの他の機能を含み得、これらは、簡単の理由で、図２には図示されない。むしろ、これらの機能は、後続の図に示され、その参照によって説明される。
【００２９】
[0049]図２に示される１つのそのようなインタラクティブ機能は、２０４で示される地理的ゾーン表示地図（以下「ゾーン表示地図（zone display map）」または「表示地図（display map）」）である。ゾーン表示地図２０４は、開発者が地図の表示を制御する、または変えることができるようにするインタラクティブ機能を含み得る。たとえば、表示地図２０４は、地図の範囲を変えるためのボタン（図示せず）を含み得る。ボタンのアクティブ化によって、ＳＤＫインターフェース１０６を使用する開発者は、表示範囲を狭くする、または広げることができ、これは、地図の詳細粒度の対応する増加または減少をもたらし得る。
【００３０】
[0050]前に説明したように、データライブラリ１２０は、異なるあらかじめ定義されたゾーンを各々輪郭描写するゾーン輪郭描写情報１２２の複数の組（または「インスタンス（instances）」）を記憶するために使用される。ジオフェンスが作成されるゾーンを選ぶ目的で、あらかじめ定義されたゾーンのうちの任意のものが開発者によって評価され得る。ゾーン表示地図２０４は、データライブラリ１２０において輪郭描写される任意のゾーンの位置およびレイアウトを表示し得る。図２において、たとえば、ゾーン表示地図２０４は、野球場の周りの濃い黒い線によって示されるように、２０８において１つのそのようなゾーンを表す。ゾーン表示地図は、２１０および２１２でもゾーンを表示する。ゾーン２１０は、駐車場複合施設に関して輪郭描写され、一方、ゾーン２１２は、マーケットに関して輪郭描写される。
【００３１】
[0051]任意のそのようなゾーンまたはゾーンの組合せの基礎をなすゾーン輪郭描写情報は、ジオフェンスモジュールを作成するのに使用するために、開発者によって選択され得る。以下、開発者がジオフェンスを作成する目的でゾーン輪郭描写情報を選択する、または示すとき、選択入力は、「ゾーンを選択する（selecting a zone）」と呼ばれることがある。後のパラグラフにおいて、本開示は、ジオフェンスを作成するとき、開発者がゾーンを選択することができる一意の機構を各々提供する、いくつかの異なるＳＤＫインターフェース１０６ゾーン選択機能について記載する。
【００３２】
[0052]前に説明したように、ゾーンが選択されるとき、対応するゾーン輪郭描写情報は、書かれるコードに含まれる。書かれるコードの一例が、２０６に示される。
【００３３】
[0053]２０８、２１０、および２１２に表されるゾーンによって証明されるように、データライブラリ１２０において輪郭描写されるゾーンは、地図データおよび記述、ならびに地理的、土地利用、および都市計画情報に基づいて直観的に形成される。すなわち、各ゾーンは、ある精度で、ゾーンの基礎をなす土地の認識可能な使用または特性に関係する境界によって輪郭描写される。たとえば、ゾーンが、レストラン、庁舎、商業施設、医療施設、観光名所のクラスタをホストする都市の区別可能なセクションに関して輪郭描写される、または何らかの他の顕著な特徴または特徴の組合せによって特徴づけられる場合、ゾーンは、輪郭描写が区別可能なエリアの認識可能な外周を近似的にたどるような方法で輪郭描写され得る。近隣、エリア、および土地の他の大規模な使用に加えて、たとえば、個々の店、公園、博物館、ストア、観光名所、学校、住宅、オフィスビル、またはある精度で識別され、位置特定することができる他の認識可能な土地使用の基礎をなす土地の部分など、より小さい場所または当該ポイントに関して、ゾーンが輪郭描写され得る。
【００３４】
[0054]追加または代替として、どんなに抽象的であろうと、領土、政府または管轄エリア、近隣、または地理的境界もしくは輪郭描写に関連するものとして認識される任意の他の考えられるエリアに関して、任意の数のゾーンが輪郭描写され得る。データライブラリ１２０は、これらの方法のいずれかで定義されるゾーンに関するゾーン輪郭描写情報１２２を記憶するために使用され得る。
【００３５】
[0055]前述のように、データライブラリ１２０において輪郭描写される各ゾーンは、それぞれの基礎をなすエリアの認識可能な境界に近似的に合うように定義され得る。したがって、仮定的な例として、データライブラリ１２０において、ゾーンが星形の土地面積を占める遊園地に関して輪郭描写された場合、輪郭描写は、星形とすることができ、公園の実際の地理的境界にほとんど等しい境界を含み得る。したがって、いくつかのゾーンは、非対称、または変わった形に形成され得、基礎をなす地理的エリアが直線または円形の周辺部を有するとき、任意の境界がそのように輪郭描写され得る場合であっても、輪郭描写されたゾーン境界は、直線または円形エッジを形成する必要はない。
【００３６】
[0056]図３は、ワシントンＤ．Ｃ．のナショナルモールの西側のビューに地図をパン（pan）するように、開発者がＳＤＫインターフェース１０６の機能を操作した後のいつかのゾーン表示地図２０４のフォーカスされたビューである。図３は、ゾーンがデータライブラリ１２０において輪郭描写され得る方法、およびゾーン表示地図によって開発者がこれらの輪郭描写をどのようにレビューできるかの方法の追加の例を提供するためのものである。
【００３７】
[0057]３０２で表されるように、ゾーン表示地図２０４は、リンカーンメモリアルを囲むように定義されるゾーンの輪郭描写を表す。また、ゾーン表示地図２０４は、ナショナルモールの西半分全体に関して定義されるゾーン３０４の輪郭描写を表す。ゾーン輪郭描写３０２および３０４の参照によって理解されるように、データライブラリ１２０は、互いに重なり合うゾーンに関するゾーン輪郭描写情報１２２を記憶し得る。追加または代替として、データライブラリ１２０は、ライブラリで同じく輪郭描写されるより小さいゾーンを含むゾーンに関して、ゾーン輪郭描写データ１２２を記憶し得る。
【００３８】
[0058]１２１で暗に示されるように、データライブラリ１２０は、開発者が、データライブラリ１２０において輪郭描写される任意の特定のゾーンに関連したゾーン情報を参照できるようにする一意のゾーン識別子を組み込み得る。ゾーン識別子は、コードが任意に割り当てられ得る。代替的に、ゾーン識別子は、開発者のゾーン認識を容易にするために選択される直観的に選ばれた名前でもよい。ゾーン識別子の使用は、図４を参照することによってさらに説明される。
【００３９】
[0059]図４は、データライブラリ１２０における例示的な情報、ならびにデータをそこで編成するための１つの例示的な方法を示す。図４は、説明の目的で示されるにすぎない。さらに、図４は、本開示のいくつかの態様を実施するために使用され得る多くの技法のうちの１つのみを示しており、いかなる形でも本開示の範囲を定義または制限するためのものと解釈されないものとする。
【００４０】
[0060]図４に示すように、データライブラリ１２０は、いくつかのゾーンの各々に関する情報を記憶するために使用され得る。矢印によって４０４、４０２および４０６で示されるように、これらのゾーンは、それぞれ、ワシントンＤ．Ｃ．のリンカーンメモリアル、ＶＡ州アレクサンドリアの米国特許商標局キャンパス、およびコロラド州デンバーにおける喫茶店に関して定義されるゾーンを含む。４０２、４０４および４０６で提示される順序情報の例は、リンクリスト項目、アレイ、順序付けられたテキストファイル、スタック、キュー、または任意の他のデータ構造を使用して情報がどのように記憶または編成され得るかを表すものとして解釈され得る。４０８で表されるように、リンカーンメモリアルに関して記憶されるゾーン情報が、ゾーン識別子「Ｌｉｎｃｏｌｎ  Ｍｅｍｏｒｉａｌ」によってデータライブラリ１２０において参照される。４１０および４１２で表されるように、米国特許商標局キャンパスおよび喫茶店に関して記憶されるゾーン情報は、それぞれ、ゾーン識別子「ＵＳＰＴＯ  Ａｌｅｘａｎｄｒｉａ」および「Ｒｉｃｋｓ  Ｃｏｆｆｅｅ  Ｓｈｏｐ」によって参照される。
【００４１】
[0061]４１４、４１６、４１８で表されるように、各ゾーン識別子の直後の行において、データライブラリ１２０は、前の識別子によって参照されるゾーンのためのそれぞれのゾーン輪郭描写情報を記憶する。このようにして、ゾーン輪郭描写情報の各セットは、それぞれのゾーン識別子にインデックスが付けられる。したがって、ゾーン識別子４０８、４１０、４１２を参照することによって、それぞれのゾーン輪郭描写情報４１４、４１６、４２０は、容易に問い合わせられ、または取り出され得る。
【００４２】
[0062]様々なゾーンに関する輪郭描写情報を記憶することに加えて、データライブラリ１２０は、任意のまたはすべての輪郭描写されたゾーンの特性、特徴、または属性に関する情報、ならびに任意のゾーン内において行われる任意のアクティビティ、または任意のゾーンの基礎をなす土地が使われる方法に関する情報を記憶するために使用され得る。たとえば、ライブラリ１２０がゾーンに関する輪郭描写情報１２２を記憶しているとき、記憶された輪郭描写情報１２２は、事実、特性、または属性、たとえばゾーンに住んでいる人々の数、ゾーンの土地面積、ゾーンの最も高い地点、平均ゾーン温度もしく雨量、ゾーン内で使用される任意の市外局番もしくは郵便番号、ゾーンが位置する市、郡、州、もしくは国、またはゾーンに関係する任意の他の類似のおよび確認可能な情報などを表す情報にリンクされ、またはインデックスが付けられ得る。
【００４３】
[0063]以下、ゾーンの事実、特性、または属性を表すそのような情報は、「ゾーン特性情報（zone characteristic information）」と呼ばれる。ゾーン特性情報の記憶は、図１に１２３で表される。後の図を参照しながらより詳細に説明するように、各輪郭描写されたゾーンに関するゾーン特性情報１２３の記憶は、開発者が、ゾーン特性に基づいてゾーン輪郭描写情報を迅速に検索し、取り出し、レビューし、開発者の裁量で選択できるようにするＳＤＫ１０１機能である。
【００４４】
[0064]データライブラリ１２０において輪郭描写された任意のゾーンについて、ゾーン特性情報１２３は、割り当てられたストリング、番号、ブール値、または他のデータ型を有する１組の変数を使用して、記憶され、アクセスされ、参照され得る。簡単な例として、任意の組のゾーン特性情報１２３は、たとえば「ｐｏｐｕｌａｔｉｏｎ」、「ａｒｅａ」、または「ａｖｅｒａｇｅ  ｚｏｎｅ  ｐｒｅｃｉｐｉｔａｔｉｏｎ」などの名前を有する整数変数を含み得る。ゾーン人口、土地面積（平方フッテージ、平方マイル面積など）、または平均ゾーン降水量を表すように、整数値がこれらの変数に割り当てられ得る。代替的に、ゾーン特性情報１２３は、標準化されたフォーマットで１組のデータとして記憶され得る。たとえば、ゾーン特性情報１２３の組は、テキストファイルまたは他のデータファイルで記憶され得、データの各インスタンスは、情報のあらかじめ決定された順序に従って、ファイルの別々のラインを占める。
【００４５】
[0065]ゾーン特性情報の例示的な組は、図４に４２２、４２４で表される。図４の例示的なデータライブラリ１２０において、ゾーン特性情報４２２、４２４の各組は、ゾーン土地面積、人口、高度、ゾーン内の建物の数、および平均温度を表すために使用される１組のゾーン特性変数を含む。
【００４６】
[0066]データライブラリ１２０の一実施形態（図４には図示せず）において、データライブラリは、データライブラリにおいて輪郭描写された様々なゾーンにおいてモバイルデバイスが利用できる情報のソースを表すゾーン特性情報を記憶する。ゾーン特性情報のこの特定の形については、後で説明し、その時点では、「ゾーン位置決定情報（zone location fixing information）」と呼ばれる。
【００４７】
[0067]データライブラリ１２０は、データライブラリにおいて輪郭描写される任意のゾーンに関連するアクティビティ、用途、ガバナンス、所有、管理、または組織に関する情報、ならびに任意の他のゾーンの特徴に関する情報を記憶するためにも使用され得る。そのような情報は、以下、「ゾーン特徴情報（zone feature information）」と呼ばれる。ゾーン特徴情報の記憶は、図１に１２４で表される。ライブラリ１２０で輪郭描写される任意のまたはすべてのゾーンについて、１組のゾーン特徴情報は、１２４に記憶され得る。これらの組内で、ゾーン特徴情報のインスタンスは、ゾーン特徴ワード（zone feature word）の形で記憶され得る。ゾーン特徴ワードは、それぞれのゾーンの特徴との何らかの直観的な関係を表す、または直観的な関係を持つ個々のワード、名前、フレーズ、またはワード、名前、もしくはフレーズの組合せである。したがって、データライブラリ１２０が大きい有名ブランドの衣料ストアの位置に関するゾーン輪郭描写情報を記憶するとき、「衣料（clothing）」、「衣料ストア（clothing store）」、「商品（merchandise）」、「有名ブランドの衣料（name-brand clothing）」、「シャツ（shirts）」、「パンツ（pants）」、「メンズウェア（menswear）」、もしくは「冬物衣料（winter clothing）」、「ウィンターセール（winter sale）」、または「利用可能なギフトカード（gift cards available）」など任意のまたはすべてのワードは、ゾーン特徴情報のそれぞれの組に適切に記憶され得る。
【００４８】
[0068]後の図を参照しながらより詳細に説明するように、輪郭描写されたゾーンに関するゾーン特性情報の記憶も、ゾーン特性に基づいてゾーン輪郭描写情報を迅速に検索し、取り出し、レビューし、開発者の裁量で選択するためのツールを開発者に提供するためのＳＤＫ１０１内で使用される。
【００４９】
[0069]図４において、１組のゾーン特徴情報は、４３０で表される。図示されるように、データライブラリ１２０において輪郭描写された各ゾーンについて、ゾーン識別子、ゾーン輪郭描写情報、ゾーン特性情報の組、およびゾーン特徴情報の組は、隣接記憶空間を占める。このようにして、データライブラリ１２０において輪郭描写された各個々のゾーンに関して、すべてのそれぞれのゾーン情報は、相互にインデックスを付けられ、容易に参照され、問い合わせられ、分析され、取り出され得る。以下、ゾーンに関係するあるタイプの情報（たとえばゾーン識別子、ゾーン特性情報の組など）がデータライブラリ１２０における別のタイプの情報にリンクされ、またはインデックスを付けられるとき、各タイプの情報は、その別のタイプの情報に「関連付けられている（associated with）」、または「対応する（corresponding to）」と呼ばれる。したがって、ライブラリ１２０において輪郭描写された任意の特定のゾーンを参照する際、本開示は、対応する１組のゾーン輪郭描写情報、対応する１組のゾーン特性情報データまたはゾーン特徴情報を指し得、これらの組のいずれかまたは両方を、輪郭描写されたゾーンならびにゾーン識別子に対応すると呼び得る。
【００５０】
[0070]本開示全体に関して、ゾーン特徴情報およびゾーン特性情報の任意の記述がこれら２つのデータタイプに関して任意の厳格なまたは正式の定義を含意すると解釈されないものとすることを理解されたい。実際は、任意のゾーンに関する情報は、ゾーン特徴情報およびゾーン特性情報として記憶され得る。たとえば、５，０００人の住民があるゾーンに住んでいるという事実は、「多くの居住者（lots of residents）」、「人口密度の高い（densely populated）」のような特徴ワードによってデータライブラリ１２０内で表され得るが、値５０００が割り当てられる「ｐｏｐｕｌａｔｉｏｎ」と呼ばれる変数によって１組のゾーン特性情報内でも表される。
【００５１】
[0071]単に明快のために、ならびに、特徴ワードが通信機構として使用されるとき、ある情報（本明細書では「ゾーン特徴情報（zone feature information）」と呼ばれる）が最も容易にまたは直観的に表され、または理解され、他の情報（ゾーン特性情報）は、変数名、量、数値範囲、および他のより数学的な抽象概念を使用して容易にまたは適切に表されるので、本開示は、２つのタイプの情報を区別する。本明細書で説明するように、変数を伴ういくつかのプロセスは、特徴ワードを伴うプロセスから区別可能であり得、「ゾーン特徴情報（zone feature information）」および「ゾーン特性情報（zone characteristic information）という用語は、この事実を認めて使用される。
【００５２】
[0072]本明細書で提示するいくつかの技法のうちの一実装形態において、データライブラリ１２０は、ユーザ端末１０４から離れたサーバ上に記憶され得る。ＳＤＫ実装ソフトウェア１０２が実行されると、ソフトウェア１０２は、外部サーバデータライブラリ１２０からコンピュータ端末１０４への情報のダウンロードを容易にすることができ得る。このダウンロードの間、データライブラリ１２０における任意のまたはすべての情報は、ユーザ端末１０４に提供され、その後、ユーザ端末１０４におけるメモリに記憶され得る。したがって、ダウンロードが行われた後、データライブラリ１２０のコピーは、ユーザ端末１０４でアクセスされ得る。
【００５３】
[0073]前に説明したように、ＳＤＫインターフェース１０６ゾーン表示地図２０４は、データライブラリ１２０における様々なゾーンのうちの任意のものの視覚的描写を提供するように設計される。ゾーンは、インターフェース１０６において示されるゾーン表示地図２０４とともに提示されるオーバーレイとして表され得る。このようにして、ＳＤＫビジュアルインターフェース１０６によって、アプリケーション開発者は、ゾーン位置、ゾーンによって占められた空間、および地図上に示される地理的または人工の特徴に関する相対的な位置を含む輪郭描写されたゾーンの地図製作描写を見ることができる。地図オーバーレイプレゼンテーション機能がゾーンを表すために使用されるとき、追加のゾーン表示地図２０４操作機能によって、開発者は、どのゾーンが地図２０４上に表されるかを制御することができる。
【００５４】
[0074]図５〜図１５は、開発者による使用の様々な段階の間のゾーン表示地図２０４およびいくつかの例示的なゾーン表示地図制御機能６８２、６８３を含む例示的なＳＤＫインターフェース１０６を表す。ＳＤＫ１０１は、開発者によってカスタマイズされたゾーン表示基準に従ってゾーン表示地図２０４を整理するように設計され得る。さらに、ＳＤＫ１０１およびＳＤＫインターフェース１０６によって、開発者は、ゾーン特性情報１２３、ゾーン特徴情報１２４、または両方のそのようなタイプの情報に基づいて、ゾーン表示基準を指定することができる。たとえば、データライブラリ１２０が輪郭描写されたゾーンに関する人口データを記憶するとき、ＳＤＫインターフェース１０６は、ゾーン表示地図２０４におけるゾーンの表示のために基準として、ゾーン居住者の最小数または最大数を指定する開発者入力を受け付けるように設計され得る。
【００５５】
[0075]ゾーン表示基準は、論理記号を含み得るテキストをタイピングすることによって開発者によって入力され得る。図５〜図１５の各々に表されるように、ＳＤＫインターフェース１０６は、開発者がゾーン表示基準入力を提供するために使用することができ得るゾーン表示基準入力ウィンドウ６８２を提供するように設計され得る。また、図５〜図１５は、アクティブゾーン表示基準ウィンドウ６８４を表す。ウィンドウ６８４は、その入力がゾーン表示地図２０４におけるゾーンの表示を制御する間は、開発者によって入力される最も最近のゾーン表示基準を表示するために使用される。６８４において表されるように、ゾーン表示基準は、開発者によって入力されていない。このために、ゾーン表示地図２０４は、データライブラリ１２０において定義され、表された市街地内に位置するすべてのゾーンを示す。
【００５６】
[0076]図示されていないが、ＳＤＫインターフェース１０６は、ゾーン推奨機能を含み得る。ゾーン推奨機能は、推奨または人気基準に基づいてゾーン表示地図２０４上に示されるいくつかのゾーンを推奨または区別し得る。たとえば、ＳＤＫインターフェース１０６の早期の使用の間に最大、最も頻繁に訪問された、または最も一般に参照されたゾーンは、基準を満たさない他のゾーンからこれらのゾーンを区別する何らかの方法で強調され、または表示され得る。
【００５７】
[0077]図６は、ゾーン特性情報に基づくゾーン表示基準が、入力ウィンドウ６８２において開発者によってどのようにフォーマットされ、入力され得るかを表す。図６が表すように、開発者は、入力ウィンドウ６８２においてゾーン表示基準６９２をフォーマットしている。開発者は、基準をゾーン特性情報におき、ゾーン人口に関する基準を定義している。
【００５８】
[0078]さらに、図７は、ひとたび入力されると、そのような人口基準が、ゾーン表示地図２０４において表示されるゾーンを制御するために、どのようにＳＤＫ１０１によって使用され得るかの一例を表す。６８４でわかるように、６８２において入力されたゾーン表示基準は、現在アクティブであり、ゾーン表示地図２０４において表示されるゾーンを制限するために使用されている。その結果、ゾーン表示地図２０４にゾーン２２５のみが表示される。ゾーン２２５は、アパート、およびアパート居住者によって使用されそうな近隣の会社および企業を含む小さい市街地に関して定義される。野球場、ベーカリおよびマーケット、郵便局、駐車場、および薬局の周りに前に表されたゾーンは、もはや表されない。データライブラリ１２０内では、これらのゾーンのいずれも、１０００人の住民を上回るゾーン人口を示す１組のゾーン特性情報１２３に対応していないので、これらのゾーンは、もはや表されない。
【００５９】
[0079]ＳＤＫインターフェース１０６は、データライブラリ１２０におけるゾーン特性情報の組内に記憶されるゾーン特性情報１２３の任意の組合せに関して入力された表示基準を処理するように設計され得る。この点について、ＳＤＫ１０１ビジュアルインターフェースは、論理演算子を使用して作成された基準の組合せの使用を容易にするように設計され得る。論理演算子機能は、ゾーン特性情報のいくつかの態様に関して、異なる方法で基準が満たされ得るような方法で定義される複雑なゾーン表示基準を入力するために開発者によって使用され得る。
【００６０】
[0080]図８は、ＳＤＫインターフェース１０６およびゾーン表示基準ウィンドウは、ゾーン特性情報に基づいてゾーン表示基準をフォーマットする際に論理演算子を使用することを開発者に促すように設計され得ることを表す。図示のように、開発者は、入力ウィンドウ６８２をクリックまたは選択している。ＳＤＫインターフェース１０６は、そのような状況において、データライブラリ１２０に記憶されたゾーン特性情報１２３の変数を開発者に知らせるためのプロンプト６５０をインターフェースが提示するように設計され得る。たとえば、ＳＤＫ１０１が図４に表される方法を使用してフォーマットされるデータライブラリ１２０にアクセスすると、プロンプト６５０は、以下に列挙された変数、すなわち、人口、土地面積、高度、建物の数、平均温度を提供し得る。データライブラリ１２０が記憶するゾーン特性情報１２４に応じて、変数の他の組合せも使用され得る。プロンプト６５０は、開発者にＳＤＫ１０１が認識する論理演算子を知らせることもでき得る。このようにして、開発者は、ＳＤＫ１０１が認識するゾーン表示基準入力を迅速に、知的に生成することが可能であり得る。
【００６１】
[0081]図１０は、ゾーン特性情報１２３の組の中のゾーンサイズ（すなわち地理的面積）、人口、降水量、および平均気温情報を記憶するデータライブラリ１２０へのアクセスを有するＳＤＫ１０１の場合、複雑な論理ディスプレイフィルタリング基準がどのようにフォーマットされ、入力され得るかの一例を表す。そのようなゾーン特性がデータライブラリ１２０に記憶されるとき、ＳＤＫ１０１は、指定された数を超える建物、および指定された数未満の人口を有する任意の残りのゾーンに加えて、指定された数の居住者を超える人口と、指定された平方マイル数未満のサイズの両方を有するゾーンのみを表示するようにゾーン表示基準入力を処理するように設計され得る。このようにしてフォーマットされた例示的なゾーン表示基準は、ウィンドウ６８２に入力される前に、６２９において表される。
【００６２】
[0082]図１１は、ウィンドウ６８２において入力されるとき、ゾーン表示基準６２９がどのようにゾーン表示地図２０４を整理するかを表す。図１１では、ゾーン表示基準６２９は、ウィンドウ６８４に示されるように、アクティブである。基準６２９によって、いくつかのゾーン輪郭描写は、ゾーン表示地図２０４から取り除かれる。図示のように、ゾーン２２５および２２６は、基準６２９を満たす唯一のゾーンである。したがって、これらのゾーンは、ゾーン表示地図２０４上に引き続き表される。
【００６３】
[0083]追加または代替として、ＳＤＫ１０１は、ゾーン特徴ワードに関して定義されるゾーン表示基準に応答してゾーンの描写を制御するように設計され得る。このようなゾーン特徴ワードの使用は、図１２に表される。図１２に表されるように、ＳＤＫインターフェース１０６は、開発者がゾーン特徴ワードまたはゾーン特徴ワードの組合せに関して基準を定義することができる入力ウィンドウ６８３を含み得る。開発者がワードまたはワードの組合せを入力することによって基準を指定するとき、ゾーン表示地図２０４は、ワードまたはワードの組合せを有さない１組のゾーン特徴ワードに対応する任意のゾーンの描写を取り除くように変えられる。
【００６４】
[0084]ＳＤＫ１０１は、６８２で入力されたゾーン特性表示基準とともに、６８３で入力された任意のゾーン特徴ワード表示基準が使用されるように設計され得る。この場合、開発者がウィンドウ６８２および６８３に基準を入力するとき、ＳＤＫ１０１は、６８２で入力された基準を満たす１組のゾーン特性情報と、６８３で入力された基準を満たす１組のゾーン特徴ワードの両方に対応するゾーンのみを表すように、ゾーン表示地図を変える。
【００６５】
[0085]ゾーン表示基準がゾーン特徴ワードに基づくことをＳＤＫ１０１が可能にするとき、ＳＤＫは、論理演算子の使用に対する開発者が、ゾーン特徴ワードに基づいて複雑な表示基準を指定できるようにすることもでき得る。論理演算子が、特徴ワードに基づいて複雑なゾーン表示基準を指定するために、ＳＤＫ１０１によって認識されるとき、ゾーン特性情報に基づいてゾーン表示基準に関して前に説明した方法と同様に、演算子が使用されてもよい。６７２において、図１２は、ウィンドウ６８３に入力される直前のゾーン特徴ワードに基づく複雑な表示基準を示す。
【００６６】
[0086]図１３は、特徴ワード基準６７２が、ひとたび入力されと、ゾーン地図表示２０４を整理する方法を示す。ゾーン表示基準６７２は、アクティブゾーン表示基準６８４として表される。基準６７２において指定される特徴ワードの結果、ゾーン表示地図２０４は、ゾーン２０８、すなわちＰｅｒｆｅｃｔＧａｍｅ  Ｂａｓｅｂａｌｌ  Ｓｔａｄｉｕｍに関して定義されるゾーンのみを表示する。図１３のゾーン表示地図２０４の外観は、表示地図２０４上に表される市街地が関係する限り、ゾーン２０８が、基準特徴ワード「野球（baseball）」、「スタジアム（stadium）」、および「完全試合（PerfectGame）」が表示される１組の特徴ワードに対応する、データライブラリ１２０において輪郭描写される唯一のゾーンであることを意味するようになっている。
【００６７】
[0087]地図表示オーバーレイを使用してゾーンを表示することの代替として、ＳＤＫインターフェースは、他の方法でもゾーンを視覚的に表すことができ得る。たとえば、輪郭描写されたゾーンは、ゾーン識別子１２１または輪郭描写データ１２２の参照によってＳＤＫインターフェース１０６で表され得る。
【００６８】
[0088]開発者の閲覧のためにゾーンを表すために使用される表示機能に関係なく、ＳＤＫ１０１は、開発者がゾーンを迅速に、および容易に選択できるようにするための選択機能を提供し得る。選択機能は、開発者がゾーンを選択するとき、選択されたゾーンに対応するゾーン輪郭描写情報が開発されるアプリケーションコードに組み込まれるように設計され得る。アプリケーションコードがモバイルデバイスプロセッサによって後で実行されるとき、アプリケーションの開発の間に選択されたゾーンに関して、ジオフェンスがアクティブ化される。
【００６９】
[0089]図１４は、ゾーン選択機能を実施するための第１の方法を表す。選択機能は、選択可能アイコン、タグ、または、たとえばマウスクリックまたはダブルクリック、強調表示アクション、「ドラッグアンドドロップ（drag and drop）」、またはキーボード入力など、少なくとも１つのタイプの開発者ゾーン選択入力に応答した他のインタラクティブ選択要素を組み込み得る。このタイプの選択機能の例は、６５６で表されるタブによって表される。ＳＤＫインターフェース１０６は、開発者がタブ６５６上をクリックすることに応答して、２０８において表されるゾーン輪郭描写情報がコード２０６内に作成されたジオフェンスモジュールに組み込まれるように設計され得る。この情報のコード２０６への組込みは、単に説明の目的で示されており、ＳＤＫインターフェース１０６において提示されるものと理解されない矢印６５８によって表される。ゾーン表示地図２０４は、地図が輪郭描写されたゾーンを表すどんなときでも、描写が１つまたは複数のそのような選択要素を含むように設計され得、その各々は、対応するゾーン輪郭描写情報をコードに組み込むために開発者によってアクティブ化され得る。
【００７０】
[0090]図１５も、ＳＤＫビジュアルインターフェース１０６が追加または代替のゾーン選択機能によって設計され得ることを表す。１つのそのようなゾーン選択機能は、ゾーン表示地図２０４上に表されるゾーンを手動で示すためにタグ２５６を使用することによってジオフェンスを作成するのではなく、開発者が単にゾーン選択基準を入力することによって、ゾーンに関してジオフェンスを随意に作成でき得るように設計され得る。図６〜図１３を参照しながら説明したゾーン表示基準オプションによく似て、ゾーン選択基準は、ゾーン特徴ワード、ゾーン特性情報、またはそうしたタイプの情報の両方に関して定義され得る。ゾーン選択基準が入力されると、ＳＤＫは、データライブラリ１２０における情報を評価し、基準を満たすゾーンに対応する輪郭描写情報１２２を取り出す。ＳＤＫ１０１は、そのように取り出された輪郭描写情報の各組に関して、別々のジオフェンスを作成する。
【００７１】
[0091]図１５におけるウィンドウ６９２および６９３を参照することによって理解されるように、選択基準入力を処理するための機構は、制御機能６８２および６８３を表示するための類似の方法で実施され得る。開発者は、ゾーン特性情報に関して定義されたゾーン選択基準を入力するために、ウィンドウ６９２を使用し得る。追加または代替として、開発者は、任意の数のゾーン特徴ワードに関して定義されたゾーン選択基準を入力するために、ウィンドウ６９３を使用し得る。いずれかのウィンドウ、または両方のウィンドウ内で、開発者は、論理演算子を使用することによって、複雑な検索基準を作成することができ得る。
【００７２】
[0092]図１５は、開発者がデータライブラリ１２０からゾーン識別子、ゾーン輪郭描写情報、ゾーン特性情報、およびゾーン特徴ワード情報を取り出し、レビューできるようにするＳＤＫインターフェース１０６機能を表す。この情報取出し機能によって、開発者は、たとえば、ゾーン表示地図２０４上に表されるゾーン上にマウスカーソルを置くことによって、ゾーンごとにそのような情報を取り出すことができ得る。図１５に暗に示されるように、開発者は、ゾーン２０８上にマウスカーソルを置いている。ゾーン２０８は、前の図に表されるように、ＰｅｒｆｅｃｔＧａｍｅ  Ｂａｓｅｂａｌｌ  Ｓｔａｄｉｕｍに関して定義される。しかしながら、ゾーン２０８は、ウィンドウ６８４におけるアクティブゾーン表示基準を満たさない１組のゾーン特徴情報に対応するので、ゾーン表示地図２０４上に特には輪郭描写されない。それにもかかわらず、開発者のマウス入力に応答して、ＳＤＫ１０１は、データライブラリ１２０から、ゾーン２０８に関して記憶されるゾーン情報６０９を取り出す。ＳＤＫインターフェース１０６は、ゾーン表示地図２０４上にこの取り出された情報を表示する。
【００７３】
[0093]アクティブゾーン選択基準ウィンドウ６９４に表されるように、開発者は、ＰｅｒｆｅｃｔＧａｍｅ  Ｂａｓｅｂａｌｌ  Ｓｔａｄｉｕｍに関して輪郭描写されたゾーン２０８に関するジオフェンスをちょうど作成した。このジオフェンスを作成するために、開発者は、ゾーン特徴ワード「野球（baseball）」、「完全試合（PerfectGame）」、および「スタジアム（stadium）」に基づいて、複雑なゾーン選択基準６９５を入力するために、ウィンドウ６９３を使用した。それに応答して、ＳＤＫ１０１は、データライブラリ１２０において輪郭描写された各ゾーンに対応するゾーン情報についての問合せを行うために、ゾーン選択基準を使用した。２０８において表され、ゾーンＩＤ「完全試合スタジアム（PerfectGame Stadium）」によって参照されるゾーンがゾーン選択基準を満たす１組のゾーン特徴ワードに対応するので、６９２で表されるゾーン輪郭描写情報の組が取り出される。取り出された輪郭描写情報は、コード２０６に組み込まれ、それによって、ＰｅｒｆｅｃｔＧａｍｅ  Ｂａｓｅｂａｌｌ  Ｓｔａｄｉｕｍの周りのゾーン２０８に関してジオフェンスが作成される。ゾーン輪郭描写のコード２０６への組込みは、矢印６５８によって表される。
【００７４】
[0094]６９２および６９３において表されるものなどのゾーン選択機能によって、開発者は、ゾーン表示地図２０４とは無関係にゾーンを選択することができる。すなわち、ゾーンは、選択される表示地図２０４上に表される必要はない。さらに、多数のゾーンがライブラリ１２０において輪郭描写され、特定のゾーン特徴ワードが、ライブラリにおける多くの輪郭描写されたゾーンに共通である場合、開発者は、多くのゾーンのゾーン輪郭描写情報を効果的に取り出し、コード２０６に組み込むことができ得る。その上、多くのゾーンが選択されることになっているときでさえ、ゾーン選択プロセスは、開発者がウィンドウ６９２および／または６９３でゾーン選択基準を指定するためにかかるよりもわずかの時間で完了され得る。
【００７５】
[0095]追加の特徴（図示せず）によって、開発者は、ゾーン輪郭描写情報のいくつかの組、ならびに対応するゾーン位置決定情報の両方を参照するいくつかのジオフェンスモジュールを含むモバイルアプリケーションコードを生成することができ得る。加えて、ＳＤＫインターフェース１０６は、輪郭描写されたゾーンにおける位置決定機能（たとえば、基地局三角測量、ＲＴＴもしくはＲＳＳＩに基づく方法、ＧＰＳなど）に基づく方法でジオフェンスをアクティブ化させるように、位置決定情報とともに、モバイルデバイス１６２にゾーン輪郭描写情報を使用させるためのコードを、開発者が書くことができるようにするように設計され得る。この機能を使用することによって、開発者は、その実行時に、クライアントモバイルデバイス１６２が、様々なゾーンの位置決定機能に関係する順序で、ジオフェンスをアクティブ化するようなモバイルアプリケーションを作成し得る。たとえば、開発者は、アプリケーションソフトウェアを実行するとき、モバイルデバイスに、位置決定情報の多くのソースを有するゾーンに関するジオフェンスを最初にアクティブ化させるためのコードを設計することができた。さらに、コードは、デバイスがより多くの情報のソースを提供する任意の他のゾーンに近くないときのみ、モバイルデバイスに、より少ない情報のソースを有するゾーンに関してジオフェンスをアクティブ化させるように設計することができた。
【００７６】
[0096]次に、仮定的アプリケーション開発シナリオについて説明する。シナリオは、ＳＤＫインターフェース１０６の説明において説明された特徴を有するＳＤＫインターフェースの開発者による使用を説明する。この仮定的な例は、モバイルアプリケーション開発者が、カリフォルニア州サンディエゴにおけるコーヒーの顧客を助ける目的でモバイルアプリケーションを作成するためにＳＤＫインターフェース１０６を使用することを伴う。開発者は、クライアントモバイルデバイスがサンディエゴにあるとき、アプリケーションソフトウェアの実行が、モバイルデバイスに、デバイスに最も近い５つの最も近い喫茶店の位置および名前を決定させるように、アプリケーションを設計している。また、アプリケーションの実行は、デバイスに、それが喫茶店に持ち込まれたときを検出させ、そのような検出が行われたときはいつでも、クーポンおよび飲み物の推奨を検索するために、ワールドワイドウェブを使用させる。
【００７７】
[0097]このために、開発者は、デバイスの測地位置を表すデータに周期的にアクセスするように、各モバイルデバイスプロセッサに命令するコードをアセンブルするために、ＳＤＫインターフェース１０６を使用する。開発者は、各クライアントモバイルデバイスに、直列近接計算を行うために位置データの各更新されたインスタンスを使用させるためのコードをさらに意図する。各装置で、近接計算は、最も近い喫茶店を決定し、位置が喫茶店内にあるときを検出する目的で、サンディエゴにおける喫茶店の位置と、各位置とを比較することを伴う。この点について、開発者は、各クライアントモバイルデバイスが、サンディエゴにおける喫茶店の位置のうちの異なるものに関して各々定義される、一連のジオフェンスをアクティブ化するように、アプリケーションコードを設計することを望み得る。したがって、開発者は、コードが各サンディエゴの喫茶店の位置への正確な参照を含むように、ゾーン輪郭描写情報をアプリケーションコードに組み込むことを望み得る。
【００７８】
[0098]本開示より前に当技術分野において知られていた種類のＳＤＫインターフェースを使用して、開発者は、ゾーン輪郭描写情報を作成し、一般に遭遇する可視プログラミング機能を使用することによって、情報をコードに組み込むことができた。これらの従来のプログラミング機能によって、開発者は、地図を視覚的に走査し、開発者に興味を起こさせる位置の周りに手動で線を引くためにマウスを使用することによって、輪郭描写情報のコードへのゾーンごとの組込みを実行することができる。当然、サンディエゴにおける多数の喫茶店の各々についてのゾーン輪郭描写情報を選択しようとする開発者にとっては、従来技術のインターフェースは重荷となる。開発者は、喫茶店の位置を決定するためにサンディエゴの地図を走査し、各位置で、ゾーンを輪郭描写するために、線を引かなければならない。
【００７９】
[0099]従来技術において知られているＳＤＫインターフェースを使用することと比較して、仮定的開発者は、本明細書において記載された機能を有するＳＤＫインターフェース１０６を使用して喫茶店ゾーン輪郭描写情報をより容易に選択することができた。仮定的開発者が喫茶店ゾーン輪郭描写情報を選択するために使用し得る１つの例示的なプロセスは、図１６および図１７を参照することで説明される。図１６は、ＳＤＫインターフェース１０６のゾーン表示地図２０４のフォーカスされたビューである。ゾーン表示地図１０４は、サンディエゴ近辺（サンディエゴ近辺の各描写は仮定的であり、サンディエゴにおける実際の通りまたは建物に基づかない）にフォーカスするように、開発者によって操作されている。
【００８０】
[00100]図１６は、開発者がウィンドウ６８２においてゾーン表示基準を入力した後、ゾーン表示地図２０４がどのように表示されるかを示す。実際は、図は、ゾーン特徴ワード「喫茶店（coffee shop）」（図示せず）に排他的に基づくアクティブゾーン表示基準によって制御されるとき、ゾーン表示地図２０４がどのように見え得るかを表すためのものである。ＳＤＫインターフェース１０６によって、開発者は、開発者のアプリケーション設計および意図に照らして重要でありそうな土地使用、商業的およびアクティビティエリアに関して輪郭描写されるゾーンを識別し、評価するために、「喫茶店」などの特徴ワードに基づいて、簡単な表示基準を使用することができる。
【００８１】
[00101]ゾーン表示基準を満たす各ゾーンは、ゾーン表示地図２０４上に重ねられた形状によって表される。このようにして、開発者は、特徴ワード「喫茶店（coffee shop）」を含む１組のゾーン特徴情報に対応する、ゾーン表示地図２０４の範囲内に位置する位置すべての輪郭描写されたゾーンを迅速に取り出して見ることができる。ゾーン表示地図２０４を参照することによって、開発者は、これらのゾーンが喫茶店の位置と実際に地理的に一致することを確認し、基礎をなすゾーン輪郭描写情報をコードに組み込むために、任意のまたはすべてのオーバーレイゾーン描写をクリックすることもできる。
【００８２】
[00102]図１７は、図１６に関して言及される基準よりも複雑であるゾーン表示基準を指定するために、開発者がＳＤＫインターフェース１０６のゾーン選択ウィンドウ６８３を使用するときの仮定的ゾーン地図表示２０４の結果を示す。より複雑なゾーン表示基準を使用することによって、開発者は、それにもかかわらず、喫茶店でないにもかかわらず、開発者に興味があり得る他のコーヒー関連の会社に関して定義されるゾーンについての追加のゾーン輪郭描写情報を取り出すことができる。たとえば、図１７におけるゾーン表示地図２０４上に表されるゾーン輪郭描写は、
【００８３】
【数１】
0006602774.tif 000002
【００８４】
など表示基準に応答して出力され得る。図１７に示すように、ゾーン表示地図２０４は、次に、図４Ａにおいて表されていないいくつかの追加のオーバーレイ形状を示す。これらの形状は、ベーカリ、朝食食堂、およびファーストフードレストランに関して輪郭描写されたゾーンを示す。
【００８５】
[00103]前に、本開示は、ゾーンデータライブラリ１２０を開発者端末またはサーバ１９２に記憶することに加えて、データライブラリ１２０のコピーが、たとえばデバイス１６２など、クライアントモバイルデバイスに記憶され得ると述べた。この場合、ＳＤＫインターフェース１０６は、ここまで説明したように、正確に設計され、動作され得る。しかしながら、ＳＤＫインターフェースは、異なる開発者オプションを提供することもでき得る。
【００８６】
[00104]たとえば、ゾーン選択入力ウィンドウは、ゾーン選択基準がデータライブラリ１２０からゾーン輪郭描写データを取り出すために使用されないように動作し得る。したがって、ゾーン輪郭描写情報は、コード２０６に組み込まれない。むしろ、ゾーン選択ウィンドウによって、単純に、開発者は、（ゾーン特徴ワード、ゾーン特性情報、または両方に基づいて）ゾーン選択基準を指定し、コード２０６に組み込むことができる。
【００８７】
[00105]この場合、モバイルデバイス１６２におけるソフトウェア実行時に、モバイルデバイスプロセッサ１６３は、ゾーン輪郭描写をデータライブラリ１２０から取り出すためにゾーン選択基準を使用し、ソフトウェア内の補足的な指示に従って、ジオフェンスを作成し、アクティブ化するために、取り出された輪郭描写情報を使用することができ得る。モバイルアプリケーションソフトウェアがこのタイプの構成下で操作されるＳＤＫを使用して生成されるとき、これらの送信がいかなるゾーン輪郭描写データをも含む必要がないので、モバイルアプリケーションソフトウェアをダウンロードすることに関連した送信データの量は大幅に低減され得る。実際は、そのような構成は、データライブラリが開発者のコンピュータ端末２０４またはサーバ１９２に記憶される必要生を不要にし得る。しかしながら、データライブラリ１２０への直接のアクセスを有していない開発者端末でＳＤＫ１０６が操作されるとき、いくつかのインターフェース機能、たとえばゾーン表示地図１２０は、非実用的であり得る。
【００８８】
[00106]加えて、モバイルデバイス１６２は、モバイルデバイスの位置の変化に基づいてジオフェンスのアクティブ化および非アクティブ化を命令するコード２０６を実行し得る。この場合、コードは、モバイルデバイス１６２がジオフェンスをアクティブ化するゾーン輪郭描写情報を指定する。指定されたゾーン輪郭描写情報は、ゾーンを超えたしきい値境界を含み得る。モバイルデバイス１６２は、周期的にその位置を決定し、位置がしきい値境界内にある各輪郭描写されたゾーンに関してジオフェンスをアクティブ化する。ジオフェンスがゾーンに関してアクティブ化されるが、次のモバイルデバイス１６２の位置がしきい値境界の外にあると決定されると、モバイルデバイス１６２は、ジオフェンスを非アクティブ化する。
【００８９】
[00107]図１８は、ＳＤＫ実装ソフトウェア１０２内で符号化され、ＳＤＫが使用される開発者コンピュータ端末２０４においてプロセッサによって実行され得る例示的なアルゴリズムである。図１８は、表されるように、任意の数のゾーンに関するゾーン輪郭描写１２２情報の組を取り出し、取り出された輪郭描写情報の各セットに関するジオフェンスを作成するために、ＳＤＫによって使用され得る。たとえば、開発者が、ゾーン特徴ワードの組合せに基づいてゾーン選択基準を入力するとき、アルゴリズムが使用され得る。
【００９０】
[00108]表されるように、１８０２で、ゾーン選択機能が開発者インターフェースで表示される。ゾーン選択機能は、たとえば６９３で表されるウィンドウなどの入力ウィンドウとすることができる。１８０４で、ＳＤＫ１０１は、開発者のゾーン選択基準の一部として、１組のＱの指定されたゾーン特徴ワードを受信する。１８０６で、ＳＤＫ１０１は、セット（Ｘ）にアクセスする。セットＸは、データライブラリ１２０に記憶されるゾーン輪郭描写データのＺＯＮＥＭＡＸセットから成る。ＺＯＮＥＭＡＸは、データライブラリ１２０において輪郭描写されるゾーンの数を表すために使用される変数である。
【００９１】
[00109]１８０８で、ＳＤＫは、セットＹにアクセスする。セットＹは、データライブラリ１２０において輪郭描写されるＺＯＮＥＭＡＸゾーンのうちの１つに対応する様々な特徴ワードセット１２４から成る。次に、１８１０で、ＳＤＫは、空のリストＢを初期化する。リストＢは、１８０２に関して言及されたゾーン選択基準を満たすために後で決定される任意のゾーンを記憶するために初期化される。加えて、１８１２で、カウント変数（ＣＯＵＮＴ）が１に初期化される。
【００９２】
[00110]１８１２で、空のセットＭが初期化される。その後、１８１４で、セットＭは、セットＱとＵＲＥＷＯＲＤＳＥＴCOUNTとの共通部分に等しくなるように設定される。１８１６で、ＭがＱと比較される。ＭがＱに等しい場合、１８１８で、ＺＯＮＥCOUNTがリストＢに追加される。１８２２で、ＣＯＵＮＴ＝ＺＯＮＥＭＡＸである場合、リストＢにおける各ＺＯＮＥJは、モバイルデバイスに後で送信され（通常、サーバを介して）、モバイルデバイスにおけるジオフェンスのアクティブ化をもたらすモバイルアプリケーションソフトウェアに組み込まれる。代替的に、１８２２でＣＯＵＮＴがＺＯＮＥＭＡＸに等しくない場合、１８２６でＣＯＵＮＴが増分され、ＣＯＵＮＴ＝ＺＯＮＥＭＡＸまでステップ１８１６〜１８２２の反復が実行される。ＣＯＵＮＴ＝ＺＯＮＥＭＡＸのとき、前に説明したように、ステップ１８２４が実行される。
【００９３】
[00111]図１９は、本開示による例示的な動作を表す。１９０２で、地図が表示される。地図は、ユーザによって選択可能な１つまたは複数の地理的エンティティを備える。１９０４で、１つまたは複数の地理的エンティティのうちの少なくとも１つの地理的エンティティのユーザによる選択に応答して、選択された少なくとも１つの地理的エンティティに対応する少なくとも１つのジオフェンスが作成される。
【００９４】
[00112]図２０は、本開示による例示的な動作を表す。２００２で、ＳＤＫ１０１モバイルデバイス１６２または他のコンピューティング装置は、ユーザによって提供される第１の入力を受信し、第１の入力は、１つまたは複数のキーワードを含む。２００４で、第１の地理的エンティティが１つまたは複数のキーワードに一致する属性を有することを決定することに応答して、ＳＤＫ、モバイルデバイス、または他の装置は、場合に応じて、第１の地理的エンティティに対応するジオフェンスを作成する。
【００９５】
[00113]図２１は、本開示による例示的な動作を表す。２１０２で、ＳＤＫ１０１、モバイルデバイス１６２、または他の処理装置は、場合に応じて、ワードを指定する第１の基準を受信する。２１０４で、ＳＤＫ１０１、モバイル１６２デバイス、または他の装置は、場合に応じて、ワードに一致する特徴を有する地理的エンティティに関して第１のジオフェンスを作成する。
機械学習技法を使用する大きいデータライブラリのアセンブリ
[00114]データライブラリ１２０は、地図、地図帳、定期刊行物、政府または市販のデータベース、国勢調査報告、土地調査または任意の他のデジタル化された情報のソースから大量のデータを処理するように設計されたコンピュータアルゴリズムを使用してアセンブルされ得る。アルゴリズムは、ゾーンが輪郭描写されるべき土地面積を決定し、データライブラリ１２０に記憶されるゾーン描写情報を生成することによってこれらのゾーンを輪郭描写するように設計され得る。また、アルゴリズムは、各輪郭描写されたゾーンの特徴、属性、特性などの学習、およびこれらのゾーンに関して作成されたゾーン特性情報またはゾーン機能情報の組にこの情報を記憶することを可能にするようにも設計され得る。
【００９６】
[00115]そのようなアルゴリズムは、地図情報および地図上に表示される特徴に基づいてゾーン輪郭描写のための土地面積を決定するように設計され得る。そのようなプロセスの１つの具体的な例として、アルゴリズムは、公園、自然エリア、および他の屋外アトラクションの位置および寸法を決定し、そのような各エリアに関するゾーンを輪郭描写するための特定のステップを含み得る。これらのステップは、緑の色で表されるエリアを捜して走査する、たとえば「公園（park）」、「森林（forest）」、「保護区（reserve）」、「庭園（gardens）」、「自然エリア（nature area）」など１つまたは複数のワードを含む名前でラベル付けされる、コンピュータ化された地図を含み得る。そのような描写が地図上で検出されると、関連した公園エリアが表されたエリアにあると決定される。表されたエリアのサイズなど、いくつかの関連の基準に基づいて、たとえば、関連の基準を満たす表された公園エリアに関するゾーンが輪郭描写されるべき旨の決定が行われ得る。次いで、次のアルゴリズムステップは、そのような各関連エリアの外縁の位置を決定するために、地図のコンピュータ化された分析を伴い得る。
【００９７】
[00116]この点で、分析は、特に、各関連エリアの表された端部を検出するために、色の変化（たとえば白上の緑の色遷移）のためのコンピュータ化された走査を伴い得る。エリアの表された端部が検出されると、次のステップは、検出された端部と地理的に一致する一連の多くの間隔が密な測地点を計算することを伴い得る。次いで、緯度および経度の座標を使用して表され得る、これらの測地点は、地図上で見つかる関連エリアの描写に関して定義されるゾーンについてのゾーン輪郭描写データとして使用され得る。
【００９８】
[00117]類似の一連のステップは、エリア特性、使用、または認識に関係なく、任意の関連エリアの位置および境界を検出し、決定するために、知的に使用され得る。特に、デジタル化された地図の多くのソースが膨大な量の詳細なきめ細かい地図データおよび描写を提供することを述べるだけの価値がある。たとえば、現在、Ｇｏｏｇｌｅ（登録商標）  ＭａｐｓおよびＧｏｏｇｌｅ  Ｅａｒｔｈなどのウェブベースの地図製作作成サービスは、政治的な境界、土地使用、土地所有分割、および都市計画配分を正確に表す非常に詳細な地図を提供する。たとえば、Ｇｏｏｇｌｅ  Ｅａｒｔｈは、会社オフィス、公園、病院、モール、駐車場、および他のそのような機関によって占められるエリアを正確に表す。一例として、Ｇｏｏｇｌｅ  Ｍａｐｓは、ショッピングモールによって占められる正確な土地面積を頻繁に表示し、ショッピングモールの床面積がモール空間を占める商業施設の中でどのように分割されるかをさらに輪郭描写する。
【００９９】
[00118]したがって、Ｇｏｏｇｌｅ  Ｍａｐｓなどの地図製作サービスは、アプリケーション開発者がジオフェンスを実施することを望み得る土地面積を識別し、これらのエリアに関する情報を取得するためのアルゴリズムを使用して掘り出され得る豊かなデータを提供する。
【０１００】
[00119]関係すると決定されたエリアに関してひとたびゾーンが輪郭描写されると、次のアルゴリズムステップは、ゾーンの基本的なサイズ、形状、および寸法属性を決定するために計算を実行することを伴い得る。たとえば、ゾーンのサイズは、測地点の集合によって限定されるエリアを計算するための任意の数の一般に知られている数学的技法を使用して計算され得る。ゾーンの平均高度、最も高い高度、または最も低い高度は、高度が測地座標にインデックス付けされる任意のデジタル化された地形図または地形テーブルから高度情報を抽出するために、ゾーン輪郭描写データを使用するように設計されたソフトウェアモジュールを実行することによって取得され得る。ゾーンの平均雨量、温度、風、または他の天候特性は、同様に、デジタル化された天気図、テーブル、または地図帳から情報を取得するように設計されたモジュールの実行を介して取得され得る。
【０１０１】
[00120]その後、他のゾーン特性または特徴または属性は、ゾーンに関係する郵便番号、所在地住所、または政治的情報の参照を介して決定され得る。そのような情報も、オンラインマッピングサービスを提供するために使用されるＨＴＭＬコードによって示される地図および地図データのコンピュータ化された走査を介して取得され得る。この点について、いくつかのウェブベースのマッピングサービスが、輪郭描写された個々の商業拠点だけでなく、利用可能であるとき、商業施設名、住所、および電話番号も描写することを認識することは重要である。この情報は、施設に関する情報を含むクライアントレビューもしばしば付随する。この莫大な情報は、ワールドワイドウェブを介してアクセス可能なＨＴＭＬコードを介して伝達される。したがって、当該のエリアがゾーン輪郭描写のために識別されるとき、ゾーン特徴ワードは、十分な量のこの追加情報を分析することによって確認され得る。
【０１０２】
[00121]説明では、実施形態の完全な理解が得られるように具体的な詳細を与えた。ただし、実施形態は、これらの具体的な詳細なしに実施され得る。たとえば、実施形態を不明瞭にすることを避けるために、よく知られている回路、プロセス、アルゴリズム、構造、および技法を不要な詳細なしに示した。この説明は、例示的な実施形態のみを与えるものであり、本発明の範囲、適用性、または構成を限定するものではない。むしろ、実施形態の上述の説明は、本発明の実施形態を実装することを可能にする説明を当業者に与えるものである。本発明の趣旨および範囲から逸脱することなく、要素の機能および構成において様々な変更が行われ得る。
【０１０３】
[00122]また、いくつかの実施形態については、流れ図またはブロック図に示されたプロセスとして説明した。各々が、動作を逐次プロセスとして説明することがあるが、動作の多くは並行してまたは同時に行われ得る。加えて、動作の順序は、並べ替えられ得る。プロセスは、図に含まれない追加のステップを有し得る。さらに、本方法の実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはこれらの任意の組合せによって実装され得る。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実装されるとき、関連タスクを行うためのプログラムコードまたはコードセグメントは、記憶媒体などのコンピュータ可読媒体に記憶され得る。プロセッサは、関連タスクを行い得る。
【０１０４】
[00123]いくつかの実施形態を説明したが、本開示の趣旨から逸脱することなく、様々な変更形態、代替構成、および等価物が使用され得る。たとえば、上記の要素は、より大きいシステムの構成要素にすぎないことがあり、他のルールが、本発明の適用例よりも優先するかまたはさもなければ本発明の適用例を変更し得る。また、上記の要素が考慮される前に、考慮されている間に、または考慮された後に、いくつかのステップが行われ得る。したがって、上記の説明は、本開示の範囲を限定しない。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ジオフェンスをプロビジョニングする方法であって、前記方法が、コンピューティングデバイスにおいて実施され、
ユーザによって選択可能な１つまたは複数の地理的エンティティを備える地図を表示することと、
前記１つまたは複数の地理的エンティティのうちの少なくとも１つの地理的エンティティの前記ユーザによる選択に応答して、前記選択された少なくとも１つの地理的エンティティに対応する少なくとも１つのジオフェンスを作成することと
を備える方法。
［Ｃ２］
前記地図を表示することが、
前記ユーザによって選択可能な複数の地理的エンティティを表示することと、
前記複数の地理的エンティティのうちの第１の地理的エンティティを前記ユーザが選択するための推奨を表示することと
をさらに備える、Ｃ１に記載の方法。
［Ｃ３］
前記ユーザが、１つまたは複数のキーワードを入力することによって、１つまたは複数の地理的エンティティを選択できるようにするインターフェースを提供することと、
前記ユーザによって入力されるキーワードを受信することと、
第２の地理的エンティティが前記入力されたキーワードに一致する属性に関連することを決定することに応答して、前記第２の地理的エンティティに対応するジオフェンスを作成することと
をさらに備える、Ｃ１に記載の方法。
［Ｃ４］
前記ユーザが、１つまたは複数のキーワードを入力することによって、前記地図を変更できるようにするインターフェースを提供することと、
前記ユーザによって入力されるキーワードを受信することと、
前記複数の地理的エンティティの第３の地理的エンティティの属性が、前記入力されたキーワードに一致しないことを決定することに応答して、前記第３の地理的エンティティを表示するのを中止することと
をさらに備える、Ｃ１に記載の方法。
［Ｃ５］
前記推奨を表示することが、
前記複数の地理的エンティティのうちの前記第１の地理的エンティティを強調表示すること、前記複数の地理的エンティティのうちの前記第１の地理的エンティティの太い輪郭を示すこと、またはそれらの組合せのうちの少なくとも１つを備える第１の描写方法を使用して前記複数の地理的エンティティのうちの前記第１の地理的エンティティを表すこと
を備える、Ｃ２に記載の方法。
［Ｃ６］
前記複数の地理的エンティティのうちの前記第１の地理的エンティティが推奨基準を満たすことを決定することに応答して、前記第１の描写方法を使用して前記複数の地理的エンティティのうちの前記第１の地理的エンティティを表すことが実行される、
Ｃ５に記載の方法。
［Ｃ７］
前記複数の地理的エンティティのうちの前記第１の地理的エンティティが前記推奨基準を満たすことを決定することが、前記複数の地理的エンティティのうちの前記第１の地理的エンティティの前の選択の数に基づく、Ｃ６に記載の方法。
［Ｃ８］
前記複数の地理的エンティティのうちの前記第１の地理的エンティティが前記推奨基準を満たすことを決定することが、前記複数の地理的エンティティのうちの前記第１の地理的エンティティの近くで利用可能なモバイルデバイス位置特定リソースを示す情報に基づく、Ｃ６に記載の方法。
［Ｃ９］
前記１つまたは複数の地理的エンティティの各々に関するゾーン輪郭描写情報を記憶することをさらに備え、前記少なくとも１つのジオフェンスを作成することが、前記少なくとも１つの地理的エンティティの各々に関する前記ゾーン輪郭描写情報を参照するコードを生成することを含む
Ｃ１に記載の方法。
［Ｃ１０］
ジオフェンスをプロビジョニングする方法であって、前記方法が、コンピューティングデバイスにおいて実施され、
ユーザによって提供される第１の入力を受信することと、前記第１の入力が１つまたは複数のキーワードを含む、
第１の地理的エンティティが前記１つまたは複数のキーワードに一致する属性を有することを決定することに応答して、前記第１の地理的エンティティに対応するジオフェンスを作成することと
を備える方法。
［Ｃ１１］
前記ユーザによって入力される論理的表現を受信することと、前記論理的表現が複数のキーワードと少なくとも１つの論理演算子とを含む、
前記論理的表現を満たすように、前記複数のキーワードに一致する属性を有する追加の地理的エンティティを識別することと、
前記追加の地理的エンティティを識別することに応答して、前記追加の地理的エンティティに対応するジオフェンスを作成することと
をさらに備える、Ｃ１０に記載の方法。
［Ｃ１２］
前記ユーザから入力を受信することと、前記入力が複数のキーワードを含む、
第２の地理的エンティティの属性と前記複数のキーワードとの間の属性−キーワードの一致の第１の量と、
第３の地理的エンティティの属性と前記複数のキーワードとの間の属性−キーワードの一致の第２の量と
を比較することと、
前記第１の量が前記第２の量よりも大きいことを決定することに応答して、前記第２の地理的エンティティに対応するジオフェンスを作成することと
をさらに備える、Ｃ９に記載の方法。
［Ｃ１３］
前記比較の結果に基づいて前記第３の地理的エンティティよりも前記第２の地理的エンティティを優先させることと、
前記第３の地理的エンティティよりも前記第２の地理的エンティティが優先されることに基づいて、第１の組の位置特定情報のソースおよび第２の組の位置特定情報のソースを定義することと、
前記第２の地理的エンティティに対して前記モバイルデバイスの第１の位置を決定することと、前記第１の位置を決定することが、前記第１の組の前記ソースを使用することを含む、
前記第３の地理的エンティティに対して前記モバイルデバイスの第２の位置を決定することと、前記第２の位置を決定することが、前記第２の組の前記ソースを使用することを含む、
をさらに備える、Ｃ１２に記載の方法。
［Ｃ１４］
前記第１の地理的エンティティに対応するジオフェンスを作成することが、モバイルデバイスが第１の位置にあることを決定することに応答して実行される、Ｃ１０に記載の方法。
［Ｃ１５］
前記第１の地理的エンティティに対応する前記ジオフェンスを作成することの後に、前記モバイルデバイスが第２の位置にあることを決定することと、
前記モバイルデバイスが前記第２の位置にあることを決定することに応答して、第２の地理的エンティティに対応するジオフェンスを作成することと、
前記第２の位置および前記第１の位置を分離する距離を決定することと、
前記距離が距離しきい値を超えることを決定することと、
前記距離が前記距離しきい値を超えることを決定することに応答して、前記第１の地理的エンティティに対応する前記ジオフェンスを非アクティブ化することと
をさらに備える、Ｃ１４に記載の方法。
［Ｃ１６］
ジオフェンスをプロビジョニングするように構成された装置であって、
メモリと、
前記メモリに結合され、
ユーザによって選択可能な１つまたは複数の地理的エンティティを備える地図を表示し、
少なくとも１つの地理的エンティティの前記ユーザによる選択に応答して、前記選択された少なくとも１つの地理的エンティティに対応する少なくとも１つのジオフェンスを作成する
ように構成されるプロセッサと
を備える装置。
［Ｃ１７］
前記地図が複数のエンティティを備え、前記プロセッサが、前記ユーザが前記複数の地理的エンティティのうちの第１の地理的エンティティを選択する旨の推奨を表示するようにさらに構成される、Ｃ１６に記載の装置。
［Ｃ１８］
前記プロセッサが、
前記ユーザが、１つまたは複数のキーワードを入力することによって、地理的エンティティを選択できるようにするインターフェース機能を提供し、
前記ユーザによって入力されるキーワードを受信し、
第２の地理的エンティティが前記入力されたキーワードに一致する属性に関連することを決定することに応答して、前記第２の地理的エンティティに対応するジオフェンスを作成する
ようにさらに構成される、Ｃ１７に記載の装置。
［Ｃ１９］
前記プロセッサが、
前記複数の地理的エンティティのうちの前記第１の地理的エンティティを強調表示すること、前記複数の地理的エンティティのうちの前記第１の地理的エンティティの太い輪郭を示すこと、またはそれらの組合せのうちの少なくとも１つを備える第１の描写方法を使用して前記複数の地理的エンティティのうちの前記第１の地理的エンティティを表すこと
によって前記推奨を表示するように構成される、Ｃ１７に記載の装置。
［Ｃ２０］
さらに、前記プロセッサが、
前記複数の地理的エンティティのうちの前記第１の地理的エンティティが推奨基準を満たすことを決定することに応答して、前記第１の描写方法を使用して前記複数の地理的エンティティのうちの前記第１の地理的エンティティを表すように構成される、
Ｃ１９に記載の装置。
［Ｃ２１］
前記プロセッサが、前記複数の地理的エンティティのうちの前記第１の地理的エンティティの前の選択の数に基づいて、前記複数の地理的エンティティのうちの前記第１の地理的エンティティが前記推奨基準を満たすことを決定するように構成される、Ｃ２０に記載の装置。
［Ｃ２２］
前記プロセッサが、前記複数の地理的エンティティのうちの前記第１の地理的エンティティの近くで利用可能なモバイルデバイス位置特定リソースを表す情報に基づいて、前記複数の地理的エンティティのうちの前記第１の地理的エンティティが前記推奨基準を満たすことを決定するように構成される、Ｃ２０に記載の装置。
［Ｃ２３］
前記プロセッサが、
前記１つまたは複数の地理的エンティティの各々に関するゾーン輪郭描写情報を記憶し、
前記少なくとも１つの地理的エンティティの各々に関する前記ゾーン輪郭描写情報を参照するコードを生成することによって、前記少なくとも１つのジオフェンスを作成する
ように構成される、Ｃ１６に記載の装置。
［Ｃ２４］
ジオフェンスをプロビジョニングするための装置であって、
メモリと、
前記メモリに結合され、
ユーザによって提供される第１の入力を受信し、前記第１の入力が１つまたは複数のキーワードを含む、
前記１つまたは複数のキーワードに一致する属性を有する第１の地理的エンティティを決定し、
前記第１の地理的エンティティに対応するジオフェンスを作成する
ように構成されるプロセッサと
を備える装置。
［Ｃ２５］
前記プロセッサが、利用可能なキーワードのリストを表示するようにさらに構成され、前記第１の入力が、前記リストから選択された１つまたは複数のキーワードを備える、Ｃ２４に記載の装置。
［Ｃ２６］
前記第１の入力が、論理的表現を備え、前記論理的表現が、複数のキーワードと、少なくとも１つの論理演算子とを含み、前記プロセッサが、
前記論理的表現を満たすように、前記複数のキーワードに一致する属性を有する追加の地理的エンティティを識別し、
前記追加の地理的エンティティに対応するジオフェンスを作成する
ようにさらに構成される
Ｃ２４に記載の装置。
［Ｃ２７］
前記第１の入力が複数のキーワードを備え、前記プロセッサが、
第２の地理的エンティティの属性と前記複数のキーワードとの間の属性−キーワードの一致の第１の量と、
第３の地理的エンティティの属性と前記複数のキーワードとの間の属性−キーワードの一致の第２の量と
を比較し、
前記第１の量が前記第２の量よりも大きいことを決定することに応答して、前記第２の地理的エンティティに対応するジオフェンスを作成し、
前記比較の結果に基づいて位置特定情報のソースを選択する
ようにさらに構成される
Ｃ２４に記載の装置。
［Ｃ２８］
前記プロセッサが、
前記比較の前記結果に基づいて前記第３の地理的エンティティよりも前記第２の地理的エンティティを優先させ、
前記第３の地理的エンティティよりも前記第２の地理的エンティティが優先されることに基づいて、第１の組の位置特定情報のソースおよび第２の組の位置特定情報のソースを定義し、
前記第２の地理的エンティティに対して前記モバイルデバイスの第１の位置を決定し、前記第１の位置を決定することが、前記第１の組の前記ソースを使用することを含む、
前記第３の地理的エンティティに対して前記モバイルデバイスの第２の位置を決定する、前記第２の位置を決定することが、前記第２の組の前記ソースを使用することを含む、
ようにさらに構成される、Ｃ２７に記載の装置。
［Ｃ２９］
前記プロセッサが、
モバイルデバイスが第１の位置にあることを決定することに応答して、前記第１の地理的エンティティに対応する前記ジオフェンスを作成する
ように構成される、Ｃ２８に記載の装置。
［Ｃ３０］
前記プロセッサが、
前記モバイルデバイスが前記第２の位置にあることを決定することに応答して、第２の地理的エンティティに対応するジオフェンスを作成し、
前記第２の位置と前記第１の位置との間の距離を決定し、
前記距離が距離しきい値を超えることを決定し、
前記距離が前記距離しきい値を超えることを決定することに応答して、前記第１の地理的エンティティに対応する前記ジオフェンスを非アクティブ化する
ようにさらに構成される、Ｃ２９に記載の装置。
【図１】
0006602774.tif 000003
【図２】
0006602774.tif 000004
【図３】
0006602774.tif 000005
【図４】
0006602774.tif 000006
【図５】
0006602774.tif 000007
【図６】
0006602774.tif 000008
【図７】
0006602774.tif 000009
【図８】
0006602774.tif 000010
【図９】
0006602774.tif 000011
【図１０】
0006602774.tif 000012
【図１１】
0006602774.tif 000013
【図１２】
0006602774.tif 000014
【図１３】
0006602774.tif 000015
【図１４】
0006602774.tif 000016
【図１５】
0006602774.tif 000017
【図１６】
0006602774.tif 000018
【図１７】
0006602774.tif 000019
【図１８】
0006602774.tif 000020
【図１９】
0006602774.tif 000021
【図２０】
0006602774.tif 000022
【図２１】
0006602774.tif 000023