double altitude, int createdBy, long creationDate, int lastUpdateBy,
long lastUpdateDate, String street, String address) {
ContentValues contentValues = new ContentValues();
contentValues.put(Constant.IMAGE_ID, imageId);
contentValues.put(Constant.IMAGE, BitmapUtils.bitmapToBytes(bitmap));//图片转为二进制
contentValues.put(Constant.ANGLE, angle);
contentValues.put(Constant.WIDTH, width);
contentValues.put(Constant.HEIGHT, height);
contentValues.put(Constant.DPI_WIDTH, dpiWidth);
contentValues.put(Constant.DPI_HEIGHT, dpiHeight);
contentValues.put(Constant.GEO_MAP_INFO, geoMap);
contentValues.put(Constant.LONGITUDE, longitude);
contentValues.put(Constant.LATITUDE, latitude);
contentValues.put(Constant.ALTITUDE, altitude);
contentValues.put(Constant.CREATED_BY, createdBy);
contentValues.put(Constant.CREATION_DATE, creationDate);
contentValues.put(Constant.LAST_UPDATED_BY, lastUpdateBy);
contentValues.put(Constant.LAST_UPDATED_DATE, lastUpdateDate);
contentValues.put(Constant.STREET, street);
contentValues.put(Constant.ADDRESS, address);
contentValues.put(Constant.IS_UPLOADED, 0);
contentValues.put(Constant.CAPTURE_TIME, creationDate);
// LogUtils.e("image: " + BitmapUtils.bitmapToBytes(context, bitmap));
db.insert(Constant.TABLE_RDD_IMAGES, null, contentValues);
}
2、删除数据
/**
- 从表 rdd_images 中根据 imageId 删除数据
*/
public static void deleteFromRddImage(SQLiteDatabase db, String imageId) {
String delSql = "DELETE FROM " + Constant.TABLE_RDD_IMAGES +
" WHERE " + Constant.IMAGE_ID + " = “” + imageId + “”";
db.execSQL(delSql);
LogUtils.e(“deleteFromRddImage”);
}
3、查询数据的个数
/**
-
根据 imageId 从表 rdd_image_damages 查询出信息 的个数
-
@param db 数据库对象
-
@param imageId imageId
-
@return
*/
public static int queryGetCount(SQLiteDatabase db, String imageId) {
// String sql = "SELECT COUNT(image_id) FROM rdd_image_damages WHERE image_id = “imageId” ";
String sql = “SELECT COUNT(” + Constant.IMAGE_ID + ") " +
"FROM " + Constant.TABLE_RDD_IMAGE_DAMAGES +
" WHERE " + Constant.IMAGE_ID + " = “” + imageId + “”";
Cursor cursor = db.rawQuery(sql, null);
cursor.moveToFirst();
int count = cursor.getInt(0);
cursor.close();
LogUtils.e(“count:” + count);
return count;
}
4、查询 5公里矩形范围内的病害信息的经纬度
/**
-
根据地图当前中心点的经纬度 查询 5公里矩形范围内的病害信息的经纬度
-
@param db 数据库对象
-
@param longitude 经度
-
@param latitude 纬度
*/
public static List queryLonLatInCertainArea(SQLiteDatabase db,
double longitude, double latitude) {
List list = new ArrayList<>();
double longitude1 = longitude + DistanceUtil.oneKM2Lon * 5;
double longitude2 = longitude - DistanceUtil.oneKM2Lon * 5;
double latitude1 = latitude + DistanceUtil.oneKM2Lat(latitude) * 5;
double latitude2 = latitude - DistanceUtil.oneKM2Lat(latitude) * 5;
String sql = "SELECT " + Constant.LONGITUDE + " , " + Constant.LATITUDE +
" FROM " + Constant.TABLE_RDD_IMAGES +
" WHERE " + Constant.LONGITUDE + " BETWEEN " + longitude2 + " AND " + longitude1 +
" AND " + Constant.LATITUDE + " BETWEEN " + latitude1 + " AND " + latitude2;
Cursor cursor = db.rawQuery(sql, null);
while (cursor.moveToNext()) {
double longitudeReturn = cursor.getDouble(cursor.getColumnIndex(Constant.LONGITUDE));
double latitudeReturn = cursor.getDouble(cursor.getColumnIndex(Constant.LATITUDE));
LatLng bean = new LatLng(latitudeReturn, longitudeReturn);
list.add(bean);
}
return list;
}
5、查询并返回一个数据列表
/**
-
从本地数据库查询十条未上传的数据,放到一个列表中
-
@param db 数据库对象
-
@return list
*/
public static ArrayList queryRddImageList(SQLiteDatabase db) {
String sql = "SELECT " + Constant.IMAGE_ID + " , " + Constant.IMAGE + " , " +
Constant.ANGLE + " , " + Constant.WIDTH + " , " + Constant.HEIGHT + " , " +
Constant.DPI_WIDTH + " , " + Constant.DPI_HEIGHT + " , " + Constant.GEO_MAP_INFO + " , " +
Constant.LONGITUDE + " , " + Constant.LATITUDE + " , " + Constant.STREET + " , " +
Constant.ADDRESS + " , " + Constant.ALTITUDE + " , " + Constant.CAPTURE_TIME +
" FROM " + Constant.TABLE_RDD_IMAGES +
" WHERE " + Constant.IS_UPLOADED + " = 0 " +
" LIMIT 10";
Cursor cursor = db.rawQuery(sql, null);
ArrayList list = new ArrayList<>();
while (cursor.moveToNext()) {
String imageId = cursor.getString(cursor.getColumnIndex(Constant.IMAGE_ID));
byte[] image = cursor.getBlob(cursor.getColumnIndex(Constant.IMAGE));
double angle = cursor.getDouble(cursor.getColumnIndex(Constant.ANGLE));
double width = cursor.getDouble(cursor.getColumnIndex(Constant.WIDTH));
double height = cursor.getDouble(cursor.getColumnIndex(Constant.HEIGHT));
double dpiWidth = cursor.getDouble(cursor.getColumnIndex(Constant.DPI_WIDTH));
double dpiHeight = cursor.getDouble(cursor.getColumnIndex(Constant.DPI_HEIGHT));
String geoMapInfo = cursor.getString(cursor.getColumnIndex(Constant.GEO_MAP_INFO));
double longitude = cursor.getDouble(cursor.getColumnIndex(Constant.LONGITUDE));
double latitude = cursor.getDouble(cursor.getColumnIndex(Constant.LATITUDE));
double altitude = cursor.getDouble(cursor.getColumnIndex(Constant.ALTITUDE));
String address = cursor.getString(cursor.getColumnIndex(Constant.ADDRESS));
String street = cursor.getString(cursor.getColumnIndex(Constant.STREET));
long captureTime = cursor.getLong(cursor.getColumnIndex(Constant.CAPTURE_TIME));
String imageDataBase64 = BitmapUtils.byteArrayToBase64(image);
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
nEoMjT11-1715831176281)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!