2012-03-31 27 views
7

ジオフェンシングについて聞いたことがありますが、疑問があります。あなたはそれらのいくつかに答えることができますように。iphone - ジオフェンシングの疑問

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

- なぜジオフェンシングに関するリンゴの文書は見つかりませんか?

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

ありがとうございました。

+1

みんな、どんなヒント? – subharb

答えて

11

ジオフェンシングは実際にiOS 4以降行われています。ドキュメントはApple Location Awareness Programming Guideにあります。これは「領域監視」とも呼ばれます。

地域は非常に使いやすいです。中心点(緯度、経度)、半径、一意の識別子を持つCLRegionを作成します。その後、-startMonitoringForRegionに電話してください。コールバックを聞くにはCLLocationManagerDelegateを登録する必要があります。-didEnterRegion-didExitRegionですが、これはかなり簡単です。

リモートで追加することはできません。デバイスからのみ。私はここ数年、彼らについていくつか学んだ。だからうまくいけば、これはあなたの道にいくつかの問題を保存します。

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

ジオフェンスは、オーバーヘッドのアクティブなGPSとロケーショントラッキングがなくても機能をロケーションに追加するのに最適な方法です。私の経験では、ジオフェンスは常時放置しても目立たない電池切れを起こしません。アップルは彼らをかなりよく理解している。彼らはアクティブGPSと同じ正確さを持っていませんが、十分に近いです。がんばろう。

更新 ここでの情報の一部は、現在の日付です。あなたが監視できる領域の数は今では20であり、アプリケーションごとに上限が設定されています。また、最小サイズは100Mではありませんが、小さくすることはできますが、精度は低い数値では保証されません。

+0

答えをありがとう、それは私のために非常に役立ちます。あなたはCLRegionsの正確さであなたの経験を共有できますか?ジオフェンシングには最高の価値が必要なのでしょうか、おそらく地域の半径に基づく別の価値がありますか? – beryllium

+0

私はまだ電池の寿命にほとんど影響を与えずに最高の精度を使用します。私は、終了イベントのタイミングがiOS 6で遅れているように見えました。広告されたとおりにすべてが機能していますが、終了イベントは以前と同じくらい正確ではないかもしれません。 –

+0

私はあなたが何を意味するか100m以上を求めていました。私は現在、ジオフェンシングを使用したナビゲーションアプリケーションに取り組んでいますが、必要な精度はあるポイントから約10mです。これは私がそれを行うために別の方法を使わなければならないということですか? –

3

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

現在のところ、iOS 6では、ポリゴン内のポイントを使用する領域モニタリングには何もありません。真のジオフェンシングを行うには、地域監視とGPSの組み合わせを使用する必要があります。CoreLocationはそれをサポートしていないため、ジオフェンシングに関するAppleのマニュアルはありません。

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

ウェブサービスからフェンスを送信する場合、TwitterのストリーミングAPIに類似した機能を実行する可能性がありますが、それはあまりにも集中する可能性があります。重要な場所を使用してフェンスを更新する方がよいでしょう。 Webサービスからフェンスを送信する場合は、を使用することをお勧めします。またはPostGRE SQLはどちらも本当に良い地理空間拡張を持っています。

いくつかの警告: - >-[CLRegion containsCoordinate:]はCoreLocationオブジェクトによって呼び出されません。すべての距離のチェックは内部的なものです。 - >重要な場所が500mまたは5分ごとに更新されます。重要なロケーションは、セルタワーからのIPアドレスを使用してロケーションを決定します。 - >ジオフェンスとリージョンが重複している可能性があります。

+0

objc-BorderPatrolは完全に動作していますか?私はそれを私のアプリに含めるといいです – hasan83

+0

objc-BorderPatrolはもはや維持されていません。あなた自身のレイ・キャスティング・ポイント・イン・ポリ述語を書く方が良いでしょう。 –