wp8 では、Geolocator から場所を取得する方法が 2 つあります。
- PositionChanged イベントをリッスンする
- GetPositionAsync を使用する
私のアプリでは、5 秒ごとに位置情報を取得したいと考えています。上記のどれを使用しても問題ありませんか? それとも、頻繁に位置情報を取得するには、どちらの方法が適しているのでしょうか?
wp8 では、Geolocator から場所を取得する方法が 2 つあります。
私のアプリでは、5 秒ごとに位置情報を取得したいと考えています。上記のどれを使用しても問題ありませんか? それとも、頻繁に位置情報を取得するには、どちらの方法が適しているのでしょうか?
これは、GeoLocation が WP7/WP8 で機能する方法ではありません。
Windows Phone は、複数のソース (GPS、GLONASS、WiFi、セル タワー、伝書鳩など) から位置情報を取得し、将来の使用のためにキャッシュします。WP7/WP8 位置情報サービス API が機能する方法は、常に新しい情報を取得し、DesiredAccuracy と MinimumThreshold に応じて、マネージド/WinPRT API にイベントをバブルアップすることを決定することです。繰り返しますが、イベントは時間ベースです。Location Services API で発生するイベントは、特定の基準に役立つ新しいデータの可用性に基づいています。
GeoLoc に基づいて 5 秒ごとにアクションを実行する場合は、GeoLocator/GeoCoordinateWatcher からのイベントをサブスクライブし、アプリに最新の値をキャッシュして、5 秒ごとに最新の値を使用することをお勧めします。5 秒ごとに発生する地理位置情報イベントを当てにしないでください。また、GetPositionAsync() を使用して WinPRT API をポーリングしないでください。GetPositionAsync() は、追跡シナリオではなく、1 回限りの地理位置情報取得シナリオのためにあります。
5分ごとに位置を取得したい場合は、GetPositionAsyncを使用します。これにより、必要なときにデータを取得できるようになります。イベントを使用すると、ユーザーが移動するたびにデータを取得することになり、問題が発生する可能性があります。