Java android sqlite光标到地图适配器
我的DataSource类中有这段代码,用于列出存储在sqlite数据库中的lat和long值。我尝试使用这个列表,通过设置circleOptions,使用mMap.addCircle将圆添加到maps api v2。如何连接光标列表以创建圆Java android sqlite光标到地图适配器,java,android,google-maps,Java,Android,Google Maps,我的DataSource类中有这段代码,用于列出存储在sqlite数据库中的lat和long值。我尝试使用这个列表,通过设置circleOptions,使用mMap.addCircle将圆添加到maps api v2。如何连接光标列表以创建圆 CircleOptions circleOptions = new CircleOptions() .center(new LatLng(location.getLatitude(), location.getLongitude()));
CircleOptions circleOptions = new CircleOptions()
.center(new LatLng(location.getLatitude(), location.getLongitude()));
数据源列表:
public List<Position> getAllPositions() {
List<Position> position = new ArrayList<Position>();
Cursor cursor = database.query(MySQLiteHelper.TABLE_NAME,
allColumns, null, null, null, null, null);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
String positions = cursor.getString(1);
double latitude = cursor.getColumnIndex("lat");
double longitude = cursor.getColumnIndex("long");
cursor.moveToNext();
}
// make sure to close the cursor
cursor.close();
return positions;
}
public List getAllPositions(){
列表位置=新的ArrayList();
Cursor Cursor=database.query(MySQLiteHelper.TABLE_名称,
所有列,null,null,null,null,null,null);
cursor.moveToFirst();
而(!cursor.isAfterLast()){
字符串位置=cursor.getString(1);
双纬度=cursor.getColumnIndex(“lat”);
双经度=cursor.getColumnIndex(“long”);
cursor.moveToNext();
}
//确保关闭光标
cursor.close();
返回位置;
}
我认为该代码无法正常工作,首先是因为在getAllPositions函数中,您返回的是一个称为“positions”的东西,从那里看不到,即使您返回了“position”,即位置数组,它似乎也是空的
您可以按如下方式使用LatLng类
public List<LatLng> getAllPositions() {
List<LatLng> positionList = new ArrayList<LatLng>();
Cursor cursor = database.query(MySQLiteHelper.TABLE_NAME,
allColumns, null, null, null, null, null);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
String positions = cursor.getString(1);
double latitude = cursor.getColumnIndex("lat");
double longitude = cursor.getColumnIndex("long");
LatLng newLatLng = new LatLng(latitude, longitude);
positionList.add(newLatLng);
cursor.moveToNext();
}
// make sure to close the cursor
cursor.close();
return positionList;
}
public List getAllPositions(){
列表位置列表=新的ArrayList();
Cursor Cursor=database.query(MySQLiteHelper.TABLE_名称,
所有列,null,null,null,null,null,null);
cursor.moveToFirst();
而(!cursor.isAfterLast()){
字符串位置=cursor.getString(1);
双纬度=cursor.getColumnIndex(“lat”);
双经度=cursor.getColumnIndex(“long”);
LatLng newLatLng=新LatLng(纬度、经度);
位置列表。添加(新建);
cursor.moveToNext();
}
//确保关闭光标
cursor.close();
返回位置列表;
}
然后:
List<LatLng> positionToDraw = getAllPositions();
for(int i=0;i<positiontoDraw.size();i++){
CircleOptions circleOptions = new CircleOptions().center(positionToDraw.get(i));
// [...]
}
List positionToDraw=getAllPositions();
对于(int i=0;i