0

Windows Phone 7 で 2 地点間の距離を読み取るアプリを開発しました。しかし、アプリをテストしているときに、数センチ移動するたびに、13000 の値が表示され始めます。

    Public Sub watcher1_PositionChanged(sender As Object, e As GeoPositionChangedEventArgs(Of GeoCoordinate))
    Dim dCoord As GeoCoordinate
    Dim currentDistance As Double
    Dim convertedDistance As Double
    dCoord = New GeoCoordinate(e.Position.Location.Latitude, e.Position.Location.Longitude)

    If mlastCoordinate.Latitude <> 0.0 Then

        'distanceText.Text = e.Position.Location.Latitude.ToString()
        currentDistance = mlastCoordinate.GetDistanceTo(dCoord)
        mDistance = startCoordinate.GetDistanceTo(dCoord)
        ' mDistance += currentDistance
        'mDistance = Math.Round(mDistance, 2)
        'Dim distance As String
        'distance = String.Format("%.2", mDistance)
        If selectedSystemState.Equals("centi") Then
            convertedDistance = mDistance * 100
        ElseIf selectedSystemState.Equals("meter") Then
            convertedDistance = mDistance
        ElseIf selectedSystemState.Equals("inches") Then
            convertedDistance = mDistance * 39.37
        ElseIf selectedSystemState.Equals("feet") Then
            convertedDistance = mDistance * 3.28
        End If

        convertedDistance = Math.Round(convertedDistance, 2)
4

2 に答える 2

0

あなたが得ている距離はメートルです。つまり、13000センチメートルは130メートルです。何をどのように動かすかがわからない限り、これは非常に妥当な値のように思われます。

于 2012-07-28T04:46:20.820 に答える
0

位置情報サービスをどのようにインスタンス化していますか - 使用していない場合はGeoCoordinateWatcher(GeoPositionAccuracy.High)、セル タワー データを使用している可能性が高く、数百メートル離れている可能性があります。

GPS を使用している場合でも、民間の GPS ユニットの精度は 5 ~ 10 m のオーダーにすぎないため、cm またはインチで距離を測定することは実際にはこれらのことを超えています。

をチェックしGeoCoordinate.HorizontalAccuracyて、「ノイズ」が何であるかを確認する必要があります。

于 2012-08-03T10:30:32.113 に答える