0

ヘルプ!!私はプロジェクトの最終段階にあり、単純な配列の問題で迷っています。誰かがこのビットで私に手を差し伸べることができますか?

このサブはリストビューを埋めます -(lvgps)と呼ばれるデータベースからlocmessage- (位置メッセージ)。

その DB から、場所 (物理的な場所)、緯度 (lat)、経度 (Lon)、および ID を取得します。

緯度と経度は、という名前の新しい場所に初期化されますgpsStoredSavedLoc(その名前は恥ずかしいです - ため息)

その場所までの距離は で計算されdist = Currentloc.DistanceTo(gpsStoredSavedLoc)、0 に近づくとメッセージが表示されます。

これはすべて問題なく機能しますが、これは Sub から実行する方法GPS_LocationChangedとしては非常に多くのリソースを消費するため、最悪の方法です。

私がする必要があるのは、緯度と経度を、各エントリ (おそらく最大約 15) を保持する小さな配列にロードし、その距離(またはその他)Currentloc.DistanceTo(gpsStoredSavedLoc)まで実行することです。(dist) = 0 or < 5

配列内の緯度と経度のIDまたは場所は必要ありません。ターゲット距離に到達してメッセージを返すと、下のサブのmodをトリガーできるからです。

些細なことですが、私の人生では解決できません。

ありがとう :-)

Sub gpsdbload

Dim place As String

Cursor1 = SQL1.ExecQuery("SELECT * FROM locmessage")
 For i = 0 To Cursor1.RowCount - 1

 Cursor1.Position = i

place =cursor1.GetString("Location")
gpsSavedlocation.Latitude   = Cursor1.GetDouble("Lat")
gpsSavedlocation.Longitude  = Cursor1.GetDouble("Long")
gpsStoredSavedLoc.Initialize2(gpsSavedlocation.latitude,gpsSavedlocation.longitude) 

    'the motor it recalculates the distance
Dim dist As Double
dist = Currentloc.DistanceTo(gpsStoredSavedLoc)

If dist < 1000 Then
dist =  Round2(dist,2)
Else 
dist =  Round2(dist/1000,2)
End If

lvgps.AddSingleLine2(place&" " & dist,cursor1.GetLong("ID"))

If dist < 5 Then
If Msg1 = "" Then
Dim msg1 As String
msg1 = Cursor1.Getstring("Msg1")
Msgbox(msg1, "Message from " & place)
End If
End If
    Next
Cursor1.Close       
End Sub

私はこれを試しまし Dim gpsdata(15) As Intた....-サブグローバルで

上記のサブに入れる

`gpsdata = gpsStoredSavedLoc`

その後、実行中

Sub GPSarray
    For i = 0 To gpsdata.Length - 1
Dim gpsdataloop As Double   
gpsdataloop = Currentloc.DistanceTo(gpsdata)

If gpsdataloop < 5 Then
Msgbox("Message from test","")
End If
    Next
End Sub

それは私にエラーを与えます

Compiling code.                         0.05
Generating R file.                      0.00
Compiling generated Java code.          Error
B4A line: 520
gpsdataloop = Currentloc.DistanceTo(gpsdata)
javac 1.6.0_26
src\Stuff\U\Canuse\main.java:733: inconvertible types
found   : int[]
required: android.location.Location
_gpsdataloop = _currentloc.DistanceTo((android.location.Location)(_gpsdata));
4

1 に答える 1

1

You are getting this error because Currentloc.DistanceTo expects a Location object, not an array of integers.

于 2011-11-10T12:00:21.597 に答える