我的英语有点生疏,但我会试着解释一下我想做什么。
我有一个数据库,里面有5行。 我想做这样的事情:
if(((szerokosc<=a)&&(szerokosc>=b)) && ((dlugosc>=c)&&(dlugosc<=d)))
我想一遍又一遍地做这件事;
public void onLocationChanged(Location location)
{
showLocation(location);
showAdditionalInfo(location);
if(savedLocation == null)
savedLocation = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
DataBaseHelper zb = new DataBaseHelper(getApplicationContext());
double szerokosc = location.getLatitude();
double dlugosc = location.getLongitude();
Cursor k = zb.dajCos();
String lokalizacja = "Jestes na: ";
while(k.moveToNext())
{
nazwa = k.getString(0);
szmax= k.getDouble(1);
szmin= k.getDouble(2);
dlmin= k.getDouble(3);
dlmax= k.getDouble(4);
opis = k.getString(5);
a=szmax;
b=szmin;
c=dlmin;
d=dlmax;
if(k.moveToNext()==false){k.moveToFirst();}
}
if(((szerokosc<=a)&&(szerokosc>=b)) && ((dlugosc>=c)&&(dlugosc<=d)))
{
lokalizacja =nazwa+opis;
}
else
{
lokalizacja ="brak danych";
}
tvLokalizacja.setText(lokalizacja);
}
这是公共游标dajCos()
public Cursor dajCos()
{
String[] kolumny={"nazwa","szmax","szmin","dlmin","dlmax","opis"};
SQLiteDatabase db = getReadableDatabase();
Cursor kursor = db.query("obiekty", kolumny, null, null, null, null, null);
return kursor;
}
我不知道如何更好地解释这一点。我将尝试以这种方式描述这一点。
在数据库中,我有5条记录,每条记录都包含坐标。 例如:我的位置对应于第二行的坐标,我想显示你在&#34; zone1&#34;,我移动十米远,我的位置不匹配任何一行的坐标所以我想要要显示&#34;没有数据&#34;,我移动十五米远,然后第四行坐标与我的位置匹配,并显示你在&#34; zone2&#34;。
我希望你能理解我的意思并帮助我。 谢谢。
答案 0 :(得分:0)
我有这个循环:
k.moveToFirst();
//iterate over rows
for (int i = 0; i < k.getCount(); i++) {
nazwa = k.getString(0);
szmax= k.getDouble(1);
szmin= k.getDouble(2);
dlmin= k.getDouble(3);
dlmax= k.getDouble(4);
opis = k.getString(5);
a=szmax;
b=szmin;
c=dlmin;
d=dlmax;
wypisz +=i+nazwa+"-"+a+"-"+opis+"\n";
tvBaza.setText(wypisz);
k.moveToNext();
}
k.moveToFirst();
//iterate over rows
for (int i = 0; i < k.getCount(); i++) {
nazwa = k.getString(0);
szmax= k.getDouble(1);
szmin= k.getDouble(2);
dlmin= k.getDouble(3);
dlmax= k.getDouble(4);
opis = k.getString(5);
a=szmax;
b=szmin;
c=dlmin;
d=dlmax;
wypisz +=i+nazwa+"-"+a+"-"+opis+"\n";
tvBaza.setText(wypisz);
k.moveToNext();
}
循环执行5次因为我在数据库中有5行。我想把它改为一遍又一遍地执行。
答案 1 :(得分:0)
1 Zone_A(nazwa),50.03233693(dlmax),50.0281259(dlmin),22.00383871(szmin),22.0094177(szmax),你在zone_A(opis)。
如你所见,我有坐标和名字。 我的目标是实现这样的目标。
当我的位置发生变化时,我会进入数据库检查每一行,如果其中一行的坐标是语句
if(((szerokosc<=a)&&(szerokosc>=b)) && ((dlugosc>=c)&& (dlugosc<=d)))`
其中
a=szmax;b=szmin;c=dlmin;d=dlmax;
和
double szerokosc = location.getLatitude();
double dlugosc = location.getLongitude();
如果他们匹配显示(nazwa + opis),如果没有显示(brak danych)。 当我移动数据时
double szerokosc = location.getLatitude();
double dlugosc = location.getLongitude();
也在改变。
所以我必须进入数据库againg以检查其中一行是否适合从GPS获得的新坐标,这些坐标保存在
中 double szerokosc = location.getLatitude();
double dlugosc = location.getLongitude();