Java android sqlite光标到地图适配器

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()));

我的DataSource类中有这段代码,用于列出存储在sqlite数据库中的lat和long值。我尝试使用这个列表,通过设置circleOptions,使用mMap.addCircle将圆添加到maps api v2。如何连接光标列表以创建圆

 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