0

帮助!!我正处于项目的最后阶段,我迷失了一个简单的数组问题。有人可以帮我解决这个问题吗?

这个 sub 填充了一个列表视图 - (lvgps),来自一个名为locmessage- 的数据库(位置消息)。

从该数据库中获取位置(物理位置)、纬度(lat)和经度(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));
4

1 回答 1

1

您收到此错误是因为 Currentloc.DistanceTo 需要一个 Location 对象,而不是一个整数数组。

于 2011-11-10T12:00:21.597 回答