Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# GPS用于计算windows phone 7上两点之间的距离_C#_Windows Phone 7_Gps_Windows Phone 7.1_Windows Phone - Fatal编程技术网

C# GPS用于计算windows phone 7上两点之间的距离

C# GPS用于计算windows phone 7上两点之间的距离,c#,windows-phone-7,gps,windows-phone-7.1,windows-phone,C#,Windows Phone 7,Gps,Windows Phone 7.1,Windows Phone,我使用GPS计算两点之间的距离,也就是说,我使用windows phone作为卷尺,但当我开始测量时,我没有得到正确的值,即使我站着不动,它也会给我几百米 这是我的密码 myWatcher.StatusChanged += new EventHandler<GeoPositionStatusChangedEventArgs>(myWatcher_StatusChanged); myWatcher.PositionChanged += new EventHa

我使用GPS计算两点之间的距离,也就是说,我使用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";
                }
        }

    }
myWatcher.StatusChanged+=新事件处理程序(myWatcher\u StatusChanged);
myWatcher.PositionChanged+=新事件处理程序(myWatcher\u PositionChanged);
myWatcher.MovementThreshold=1;
void myWatcher\u位置已更改(对象发送器,地理位置更改Deventargs e)
{
双温度=e.位置.位置.纬度;
双temps=e.Position.Location.Longitude;
如果(count2==0)
{
FirstLocation=新地理坐标(tempf,temps);
count2++;
}
其他的
{
双测距仪;
地理坐标定位;
当前位置=新地理坐标(tempf,temps);
distanceInMeter=currentLocation.GetDistanceTo(第一个位置);
如果(App.flag==0)
{
textBlock1.Text=distanceInMeter.ToString()+“m”;
双距离厘米=距离米*100;
textBlock2.Text=distanceInCm.ToString()+“cm”;
}
否则如果(App.flag==1)
{
双距离英寸=距离米*39.3701;
textBlock1.Text=distanceInInch.ToString()+“in”;
双距离信息量=距离信息量*3.28084;
textBlock2.Text=distanceInFoot.ToString()+“ft”;
}
}
}
GPS最多只能到达3米。更可能的误差是5-10米


为了获得更高的精度,你必须调整你的GPS读数。

这里的其他海报通常是正确的:GPS不会提供你所需要的精度。至少不是一个人

假设你有一个很好的卫星定位,你可以得到厘米的精度,但这需要对来自特殊固定站的信息进行后处理,或者从这样一个站实时接收数据。这里的流行语是“实时相位差分”、“实时运动学”、“相位差分后处理”

有一些细节


所以,如果你能访问feed,这是可能的。但这并不像你希望的那么容易。

到目前为止,准确度还不是问题。我运行此应用程序,当前位置的读数不断变化,而我已将movementthreshold设置为1,这意味着需要覆盖1米的距离才能调用PositionChanged事件,但读数仍在不断变化,即使我仍然是卷尺?gps在最好的情况下只能精确到8米左右。如果您使用的是塔台辅助gps而不是真正的gps,100米可能是最好的情况。到目前为止,精度不是问题。我运行此应用程序,当前位置的读数不断变化,而我已将movementthreshold设置为1,这意味着需要覆盖1米的距离才能调用PositionChanged事件,但读数仍在不断变化,即使我仍然是,如果你的整个问题都是关于准确性的,你怎么能说“准确性不是问题”?如果GPS的任何单个测量值仅在(最多!)3米以内,那么来自完全相同位置的任何两个测量值可能(最多!)相距6米!再好不过了。gps最适合测量地球上的距离,不是在一张纸上。不,这不是我的意思,只是reight现在我还没有达到精确测量阶段,我知道3-4米是精确的,我会为此制作应用程序,但目前的问题是,即使我站着不动,我也会有数百米的距离,虽然这是不精确的,但至少应该是0当前位置。看到我上面的代码了吗?你是否真的看到了你在两次“静止”通话中得到的两个坐标?你把它们插到地图上看得到什么了吗?您是否以其他方式计算了这些通话之间的距离而不使用此通话?就像我说的,任何两个电话都可以给你两个答案。第一个电话可能会让你得到塔台辅助坐标,这是非常不准确的。第二个电话可能会得到正确的gps定位,给你一个更准确的答案,这与第一个不同!GPS标准定位服务(除非你有特殊的军事硬件,否则这是你所能得到的一切),充其量只能在95%的置信水平下提供3维+/-7.8米。那是一个直径52英尺的不确定球体。您可以在上阅读标准的当前版本。那是最好的情况。还有许多其他熵源会降低解决方案的精度,包括GPS接收机的硬件/软件问题、大气和其他外部因素等。