帮助!! 我正处于项目的最后阶段,我迷失了一个简单的数组问题。有人可以帮我这一点吗?
此子填充列表视图 - (lvgps)
,来自名为locmessage
的数据库 - (位置消息)。
从该数据库获取位置(物理位置),纬度(纬度)和经度(Lon)和ID。
lat和lon初始化为一个名为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));
答案 0 :(得分:1)
您收到此错误,因为Currentloc.DistanceTo需要一个Location对象,而不是一个整数数组。