点、线、面查询细节详解
查询
1.点
代码如下(示例):
List<FinalSitePoint> finalSitePointList = qp.queryPoint(polygon.getUniqueId(), "2", "想要查询的点", Constants.fruit.getApplyBy());
①polygon.getUniqueId()得到的数据是id,相当于身份证,通过id可查询到线和点。(面由点线构成)
②其中“2”代表该点的类型,可根据需要设置。(比如在一个项目中,有很多点、线、面,那么“2”就代表点,“3”就代表线,“4”就代表面)
③“想要查询的点”这个描述就是这个点的名字。
③最后个,在最后说,因为它迷惑了我很久,让我一直弄不懂怎么查询到点。
public List<FinalSitePoint> queryPoint(String uniqueid, String type, String remark1, String userid){
List<FinalSitePoint> list = new ArrayList<>();
String sql = "select uniqueid,name,remark,specklesshape,type,remark3 from point where uniqueid = ? and type = ? and remark1=? and userid= ?";
Cursor cursor = gpkgdb.rawQuery(sql, new String[]{uniqueid, type, remark1, userid});
}
2.线
代码如下(示例):
public List<FinalSiteLine> queryFinalSiteLine(String uuid, String OBJID, String linei) {
List<FinalSiteLine> list = new ArrayList<>();
String sql = "SELECT OBJECTID,specklesshape,uniqueid,pac,lineid,type FROM polyline where userid = ?";
Cursor cursor = gpkgdb.rawQuery(sql, new String[]{Constants.fruit.getApplyBy()});
}
3.面
代码如下(示例):
public List<Polygon> querypolygon(String type, String OBJID) {
List<Polygon> list = new ArrayList<>();
sql = "SELECT OBJECTID,specklesshape,uniqueid,pac,name,create_time,type,area,location,status,remark3,remark1,userid FROM polygon where userid = ? and type=?";
cursor = gpkgdb.rawQuery(sql, new String[]{Constants.fruit.getApplyBy(), type});
}
总结
Constants.fruit.getApplyBy()(String userid)它相当于画点线面的人的id,我们在存数据的时候,就将每一个点、面,每一条线都存了这个id。通俗来说,就是点、线、面代表一个班的每一个学生,userid是这个班级号,当我们把某个点/线/面删除时就相当于把某个学生移除该班级,那么我们再通过userid(班级号)来找这个点/线/面(这个学生)就会找不到。
(在写代码时很不得要领,虽然是个小问题,但是因为不理解,导致很久钻不出这个洞。写得不对的请见谅,并告诉我一下,我也在学习中,谢谢)