German Fehler bei der Distanzberechnung

tudorf

Active Member
Licensed User
Longtime User
Hallo

Ich verwalte in einer SQL-Datei diverse POI. Beim Start berechne ich die Distanz zwischen meiner aktuellen Position und dem POI. Alle POI haben zulässige Werte in 2 Datenfeldern. z.B. 51 39.555 oder 030 59.861.

Beim Start erhale ich folgende Fehlermeldung:
java.lang.illegalArgumentException:coordinate=030:59.861

Nach dem Bestätigen wird meine Tabelle angezeigt. Von 69 Datensätzen haben 7 Datensätze einen Abstand von 0 Meter.

Überschreibe ich den Wert 030:59.861 z.B. mit 030:58.861 wird ein andere anderer Datensatz angezeigt.

Dann gibt es aber nur noch 3 Datensätze mit einem abstand von 0 m.

Einen Abstand von 0 m gibt z.B. auch die Koordinate 031:44.049 an.

Ich habe auf ein Laufzeitproblem getippt und jede einzelne Koordinate in einer Msgbox bestätigt. Keine Änderung.

Das GPS gibt aktuelle Werte aus. Also keine fehlerhafte vorbelegung.

Hat jemand einen Tip was ich machen kann ?

Mfg Tudorf


B4X:
   Dim Cursor1 As Cursor
   Cursor1 = Main.SQL1.ExecQuery("SELECT * FROM " & Main.DBTableName)

   Dim text1 As String
   Dim text2 As String   
   Dim nord, ost As String
   
   nord = ""
   ost = ""

   Dim id_nr 
   For i = 0 To Cursor1.RowCount - 1      
      Cursor1.Position = i
      id_nr = Cursor1.GetString(Main.ColumnName(0))
      text1 = Cursor1.GetString(Main.ColumnName(3)) 
      text2 = Cursor1.GetString(Main.ColumnName(4))

      Main.ZielLat =  nord & text1.Trim & ":" & text2.Trim
      text1 = Cursor1.GetString(Main.ColumnName(6))
      text2 = Cursor1.GetString(Main.ColumnName(7))

      Main.ZielLng =  ost & text1.Trim & ":" & text2.Trim
      Dim Location1 As Location
      Dim Location2 As Location
      Location1.Initialize2(Main.myLat, Main.myLon)
      Location2.Initialize2(Main.ZielLat, Main.ZielLng)
      
      Dim dis As Int
'      dis = NumberFormat(Location1.DistanceTo(Location2),0,0)
      dis = Location1.DistanceTo(Location2)
'      Log("Distance = " & NumberFormat(Location1.DistanceTo(Location2),0,0) & " m" )

      Main.SQL1.BeginTransaction   

      Dim recordstr As String
      recordstr = "UPDATE gcneu SET "
      recordstr = recordstr & " abstand = '" & dis
      recordstr = recordstr & "' WHERE "
      recordstr = recordstr & "ID = '" &id_nr & "'"
      Main.SQL1.ExecNonQuery(recordstr)
       
      Main.SQL1.TransactionSuccessful
      Main.SQL1.EndTransaction



   Next
   Cursor1.Close
 
Top