0

My Wp7(マンゴー)アプリは、データベース内の最も近いオブジェクトを検索するために、ユーザーの場所を知る必要があります。しかし、私はウェルカム画面に結果を表示したいので、私は自分の場所ができるだけ早く必要です。私はGeoCoordinateWatcher(高精度と最小のしきい値で)を開始するコードを書いています。最初の起動時にそれを停止し、問題のオブジェクトを返すwebserviceに場所を送信します。GeoCoordinateWatcherは何回起動する必要がありますか?

私はそれを試した後、私は町の反対側にそれを提示しました。私はそれを始めました、そしてみんなの楽しみのために、それは完全に間違った結果を示しました - 私は理由を知っています:それはまだ私が家にいたと思った!

GPSのアップデートにはどのくらいの時間がかかりますか? 私は最終的に私の現在の場所を得たことをどのように知っていますか? GeoCoordinateWatcherを何回止めてからそれを止めるべきですか?

答えて

3

はここに答えをチェックアウト:

http://awkwardcoder.blogspot.com/2011/09/geo-location-on-wp7-dont-trust-first.html

を基本的に、人はあなたがそれらを要求し始めたときからの範囲になるまでの更新を求めておきます。

in PositionChanged 

if ((DateTime.Now - e.Position.TimeStamp.DateTime) < LocationTimeout) 
    { 
     //recent enough. 
    } 
+0

これはとても良いにおいです。私はすぐにチェックアウトします! – TDaver

+0

確かに!面白い解決策 – Ku6opr

+0

@ Ku6oprはちょうどこの正確な問題を昨日持っていたので、問題は私の舌の先端にあった:) –

0

古いユーザーの場所(自宅)などの処理のためのStatusChangedイベントがあります。デバイスのステータスが準備完了のときには、現在の位置情報を保持しています(ただし、不正確な場合があります)。だから、あなたは、高精度の位置が必要な場合HorizontalAccuracyを使用します。)

+0

はい、最初の(少数の)StatusChangedイベントにはまだOLDの位置が含まれています。更新されたことをどうやって知ることができますか? – TDaver

関連する問題