我的 DataSource 类中有这部分代码,用于制作存储在我的 sqlite 数据库中的纬度和经度值列表。我正在尝试获取此列表并使用它通过设置 circleOptions 使用 mMap.addCircle 将圆圈添加到 map 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;
}
最佳答案
我不认为代码会正常工作,首先是因为在 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;
}
然后:
List<LatLng> positionToDraw = getAllPositions();
for(int i=0;i<positiontoDraw.size();i++){
CircleOptions circleOptions = new CircleOptions().center(positionToDraw.get(i));
// [...]
}
如果有帮助,请告诉我。
问候
关于java - android sqlite 游标到映射适配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22001026/