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);
最后附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题 (含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总)
面试成功其实是必然的,因为我做足了充分的准备工作,包括刷题啊,看一些Android核心的知识点,看一些面试的博客吸取大家面试的一些经验,下面这份PDF是我翻阅了差不多1个月左右一些Android大博主的博客从他们那里取其精华去其糟泊所整理出来的一些Android的核心知识点, 全部都是精华中的精华,我能面试到现在资深开发人员跟我整理的这本Android核心知识点有密不可分的关系,在这里本着共赢的心态分享给各位朋友。
这份PDF囊括了JVM,Java集合,Java多线程并发,Java基础,生命周期,微服务, 进程,Parcelable 接口,IPC,屏幕适配,线程异步,ART,架构,Jetpack,NDK开发,计算机网络基础,类加载器,Android 开源库源码分析,设计模式汇总,Gradle 知识点汇总…
由于篇幅有限,就不做过多的介绍,大家请自行脑补
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!
oyRToL-1714959576594)]
这份PDF囊括了JVM,Java集合,Java多线程并发,Java基础,生命周期,微服务, 进程,Parcelable 接口,IPC,屏幕适配,线程异步,ART,架构,Jetpack,NDK开发,计算机网络基础,类加载器,Android 开源库源码分析,设计模式汇总,Gradle 知识点汇总…
由于篇幅有限,就不做过多的介绍,大家请自行脑补
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!