3

GPS を使用して 2 点間の距離を計算しています。つまり、Windows Phone を巻尺として使用していますが、開始時に静止していても正しい値が得られません。数百メートルになります。

ここに私のコードがあります

      myWatcher.StatusChanged += new EventHandler<GeoPositionStatusChangedEventArgs>(myWatcher_StatusChanged);
        myWatcher.PositionChanged += new EventHandler<GeoPositionChangedEventArgs<GeoCoordinate>>(myWatcher_PositionChanged);
        myWatcher.MovementThreshold = 1;   

void myWatcher_PositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e)
    {
        double tempf = e.Position.Location.Latitude;
        double temps = e.Position.Location.Longitude;
        if (count2 == 0)
        {
            FirstLocation = new GeoCoordinate(tempf, temps);
            count2++;
        }
        else
        {
             double distanceInMeter;
            GeoCoordinate currentLocation;
                currentLocation = new GeoCoordinate(tempf, temps);
                distanceInMeter = currentLocation.GetDistanceTo(FirstLocation);                   

                if (App.flag == 0)
                {
                    textBlock1.Text = distanceInMeter.ToString() + " m";
                    double distanceInCm = distanceInMeter * 100;
                    textBlock2.Text = distanceInCm .ToString() + " cm";
                }
                else if (App.flag == 1)
                {
                    double distanceInInch = distanceInMeter * 39.3701;
                    textBlock1.Text = distanceInInch.ToString() + " in";
                    double distanceInFoot = distanceInMeter * 3.28084;
                    textBlock2.Text = distanceInFoot.ToString() + " ft";
                }
        }

    }
4

3 に答える 3

1

せいぜい、GPS の精度は 3 メートルまでです。可能性の高いエラーは 5 ~ 10 メートルです。

精度を高めるには、GPS の読み取り値を拡張する必要があります。

于 2012-12-11T18:19:19.147 に答える
1

今のところ精度は問題ありません。このアプリを実行すると、motionthreshold を 1 に設定している間、現在の位置での読み取り値が継続的に変化します。これは、PositionChanged イベントを呼び出すために 1 メートルの距離をカバーする必要があることを意味しますが、読み取り値は変化し続けます。

于 2012-12-11T19:24:58.640 に答える
0

ここにある他のポスターは概ね正しいです。GPS では必要な精度が得られません。少なくとも一人ではありません!

適切な衛星修正があったと仮定すると、センチメートルの精度を得ることができますが、これには、特別な固定局からの情報またはそのような局からのデータのライブ フィードによる後処理が必要になります。ここでの流行語は、「リアルタイム位相微分」、「リアルタイムキネマティック」、「位相微分後処理」です。

このサイトにはいくつかの詳細があります。

なので、フィードにアクセスできるようになれば、可能かもしれません。しかし、それはおそらくあなたが望んでいたほど簡単ではありません。

于 2012-12-11T18:32:11.643 に答える