7

ジオフェンシングについて聞いたことがありますが、疑問があります。それらのいくつかに答えていただければ幸いです。

- iOS 5.1 の新機能ですが、ジオフェンシングとリージョンの使用の違いは何ですか? 私が読んだことから、バッテリーの消耗はほぼ同じですか?

- ジオフェンシングに関する Apple のドキュメントが見つからないのはなぜですか?

-どのように地域を定義しますか? Web サービス経由でリモートで追加できますか?

ありがとう。

4

2 に答える 2

11

ジオフェンシングは、実際には iOS 4 から使用されています。これに関するドキュメントは、Apple Location Awareness Programming Guideにあります。「地域監視」ともいう。

リージョンの使い方は非常に簡単です。CLRegion中心点 (緯度、経度)、半径、および一意の識別子を使用して を作成します。次に、 を呼び出します-startMonitoringForRegionCLLocationManagerDelegate確かに、コールバックをリッスンするにはを登録する必要がありますが-didEnterRegion-didExitRegionそれも非常に簡単です。

リモートで追加することはできません。デバイスからのみ。ここ数年で、彼らについていくつかのことを学びました。うまくいけば、これにより、今後のトラブルが軽減されることを願っています。

  • すべてのデバイスがリージョンを監視できるわけではないため、可用性を確認してください
  • 領域の最小サイズと最大サイズがあります。これらの値の上または下に領域を登録すると、デフォルトで最小/最大になります。最小は 100M、最大は地球の 1/3 程度のサイズです。かなり大きい。
  • 1 つのデバイスで監視できるリージョンの最大数があります。このリージョンの「プール」はすべてのアプリで共有され、古いフェンスは削除されて新しいフェンス用のスペースが確保されます。そのための準備をしてください。最大数は 100 近くです。ただし、通帳アプリ、リマインダー、および他のアプリ間で共有されると、すぐに燃え尽きてしまう可能性があります。
  • ロケーション マネージャー デリゲートのインスタンスが 1 つだけであることを確認してください。複数のインスタンスは、複数のデリゲート呼び出しを取得します。それらはすべてリッスンしています。

ジオフェンスは、アクティブな GPS や位置追跡のオーバーヘッドなしで位置に機能を追加する優れた方法です。私の経験では、ジオフェンスを常時オンにしておくと、顕著なバッテリーの消耗は発生しません。アップルはそれらをかなりよく理解しています。アクティブ GPS ほどの精度はありませんが、十分に近いです。幸運を。

更新 ここにある情報の一部は、現在は少し古くなっています。監視できるリージョンの数は現在 20 で、アプリごとに制限されています。また、最小サイズは 100M ではありません。これより小さくすることもできますが、それ以下の数値では精度が保証されません。

于 2012-10-18T15:16:50.900 に答える
3

「ジオフェンシング」は、iOS 4 以降、「地域監視」の形で常に存在しています。距離チェックを使用して、サークルに入ったかどうかを確認します。これは真のジオフェンシングではありません。真のジオフェンシングは、ポイントがポリゴン (ポリゴン内のポイントと呼ばれる) に着陸するかどうかをチェックするためです。

iOS 6 の時点では、現在、ポイント イン ポリゴンを使用するリージョン モニタリングに似たものはありません。真のジオフェンシングを行うには、地域監視と GPS を組み合わせて使用​​する必要があります。CoreLocation はジオフェンシングをサポートしていないため、ジオフェンシングに関する Apple のドキュメントはありません。

ポイント イン ポリ アプローチを使用する場合は、レイ キャスティングをお勧めします。それを非常にうまく実装するObjective-Cクラスがあります。それはobjc-BorderPatrolと呼ばれます。

Web サービスからフェンスを送信することに関しては、Twitter のストリーミング API と同様のことを行うことができるかもしれませんが、それでは負荷がかかりすぎる可能性があります。重要な場所を使用してフェンスを更新することをお勧めします。Web サービスからフェンスを送信する場合は、MySQLまたはPostGRE SQL を使用することをお勧めします。どちらも非常に優れた地理空間拡張機能を備えているからです。

いくつかの注意事項: ->-[CLRegion containsCoordinate:]は CoreLocation オブジェクトによって呼び出されることはありません。距離チェックはすべて内部で行われます。->重要な場所は、500m または 5 分ごとのいずれか早い方で更新されます。重要な場所は、セル タワーからの IP アドレスを使用して場所を特定します。-> ジオフェンスと地域は重複する可能性があります。これを追跡してください。

于 2013-07-22T19:16:49.533 に答える