幫助!! 我正處於一個項目的最後階段,我迷失了一個簡單的數組問題。有人能幫我一下嗎?需要使用GPS的小陣列幫助
該子部分從名爲locmessage
的數據庫填充listview - (lvgps)
- (位置消息)。
從該數據庫中獲取位置(物理位置),緯度(lat)和經度(Lon)和ID。
的緯度和經度得到初始化到一個名爲gpsStoredSavedLoc
新位置(該名稱是尷尬 - 嘆氣)
到該位置的距離是dist = Currentloc.DistanceTo(gpsStoredSavedLoc)
當接近0會出現一條消息計算。
這一切都可以正常工作,除非這是一種可怕的方式,使其脫離Sub GPS_LocationChanged
,因爲它會消耗太多的資源。
我需要做的是將Lat和Lon加載到一個只包含Currentloc.DistanceTo(gpsStoredSavedLoc)
(每個條目最多大約15個)的小陣列中,然後運行到該距離(dist) = 0 or < 5
(或其他)。
我不需要數組中的lat和lon的ID或位置,因爲它可以在到達目標dist並返回消息時觸發下面的sub的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));
謝謝Erel,我退後一步,記錄了lat和lon,現在它工作:) – netchicken