【问题标题】:save All Latitudes and Longitudes in Sqlite Database在 Sqlite 数据库中保存所有纬度和经度
【发布时间】:2018-10-01 20:18:40
【问题描述】:

我想将所有纬度和经度保存在 Sqlite 数据库中的 IN_RIDE_LatLng 表中,并带有 latitudelongitude 列名。

创建表。

   database.execSQL(" CREATE TABLE IF NOT EXISTS " + IN_RIDE_LatLng + " ("
            + Latitude + " TEXT, "
            + Longitude + " TEXT" + ");");

保存所有经纬度

public void insertLatLng(Double latitude, Double logitude) {
    try {

        ContentValues contentValues = new ContentValues();
        contentValues.put(NewDatabaseForInRideData.Latitude, latitude);
        contentValues.put(NewDatabaseForInRideData.Longitude, logitude);
        database.insert(NewDatabaseForInRideData.IN_RIDE_LatLng, null, contentValues);

        }
     catch (Exception e) {
        e.printStackTrace();

}}

如何从数据库中检索 ArrayList<LatLng> latLngList = new ArrayList(); 中的所有 LatLngs。 函数如何返回存储在数据库中的所有 LatLng 列表。

我这样做是为了检索列表但不工作。

      public ArrayList<LatLng> getLatLngList() {
    try {
        Cursor cursor = database.rawQuery("SELECT latitude , longitude FROM in_ride_lat_lng" , null);/*(die tabel se naam)*/

       // String[] columns = new String[]{NewDatabaseForInRideData.Latitude,NewDatabaseForInRideData.Longitude};
        //Cursor cursor = database.query(NewDatabaseForInRideData.IN_RIDE_LatLng, columns, null, null, null, null, null);
        if (cursor.moveToFirst()) {
            do {
                latLngList.add(new LatLng(cursor.getDouble(cursor.getColumnIndex(NewDatabaseForInRideData.Latitude)), cursor.getDouble(cursor.getColumnIndex(NewDatabaseForInRideData.Longitude))));
               // return latLngList;
            } while (cursor.moveToFirst());

        }
        return latLngList;

    } catch (Exception e) {
        e.printStackTrace();
        return latLngList;
    }
}

【问题讨论】:

  • @pskink 我还有 100000 个
  • 我不需要通过这些 latLngs 绘制折线,我只获取此列表并将其上传到服务器
  • 您的实际问题是什么?数据是否存储在数据库中?以及存储但无法进入列表的数据?
  • @Vickyexpert 是的,它存储所有 latLngs 但不检索为 latLng 列表。

标签: android database sqlite android-sqlite


【解决方案1】:

请替换您的getLatLngList()方法如下:

public ArrayList<LatLng> getLatLngList()
{

  ArrayList<LatLng> latLngList = new ArrayList<>();
  Cursor cursor = database.rawQuery("SELECT * FROM " + NewDatabaseForInRideData.IN_RIDE_LatLng, null);

  cursor.moveToFirst();

  while (!cursor.isAfterLast()){
      latLngList.add(new LatLng(cursor.getDouble(cursor.getColumnIndex(NewDatabaseForInRideData.Latitude)),cursor.getDouble(cursor.getColumnIndex(NewDatabaseForInRideData.Latitude))));
      cursor.moveToNext();
  }

  cursor.close();
  return latLngList;
}

【讨论】:

    猜你喜欢
    • 2011-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    • 2017-01-07
    • 2014-04-11
    • 2023-03-31
    • 1970-01-01
    相关资源
    最近更新 更多