2011-11-10 11 views
0

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

このサブは、locmessage(locationメッセージ)というデータベースからlistview-(lvgps)を入力します。

このデータベースから、ロケーション(物理的な場所)、Latitude(緯度)、Longitude(Lon)とIDを取得します。その場所までの距離はdist = Currentloc.DistanceTo(gpsStoredSavedLoc)とするとき0に近いメッセージが表示されると計算され

-

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

これは、あまりにも多くのリソースを消費するため、Sub GPS_LocationChangedを実行する恐ろしい方法である点を除いて、すべて正常に動作します。

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

ターゲットのdistに到達したときに下位のmodをトリガしてメッセージを返すので、配列のlatとlonのIDまたはLocationは必要ありません。

これはちょっとしたことですが、私の人生にとっては、私はそれを解決することができません。私はこれを試みた

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 

それは私にCurrentloc.DistanceToがLocationオブジェクトではなく、整数の配列を期待するため、このエラーを取得している

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

のエラーが発生します。

+0

ありがとうErel、私は戻って緯度と緯度を記録し、代わりに今すぐ:) – netchicken

関連する問題