2011-11-10 29 views
0

幫助!! 我正處於一個項目的最後階段,我迷失了一個簡單的數組問題。有人能幫我一下嗎?需要使用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)); 

回答

1

因爲Currentloc.DistanceTo需要一個位置對象,而不是整數數組您收到此錯誤的錯誤。

+0

謝謝Erel,我退後一步,記錄了lat和lon,現在它工作:) – netchicken