Android SQLite-如何查询空间参照?

Android SQLite-如何查询空间参照?,android,sqlite,cursor,Android,Sqlite,Cursor,我正在向地图中添加点,并将它们的位置保存到数据库中。当我单击地图上先前添加的点时,我希望在单击某个点时执行SQLite查询。显然,当点击显示器上的项目时,您并不是100%正确的。我发明了一个正方形区域,它可以接受点击,因为它是一个需要的点(更多信息见图片)。我已经为SQlite查询将这个区域划分为四个象限——如果它被接受为点选择,我只需要将手指放在其中一个象限中 我使用SQL语句来计算我是否点击了该点: cursor=db.query("points_details2", null ,"(lo

我正在向地图中添加点,并将它们的位置保存到数据库中。当我单击地图上先前添加的点时,我希望在单击某个点时执行SQLite查询。显然,当点击显示器上的项目时,您并不是100%正确的。我发明了一个正方形区域,它可以接受点击,因为它是一个需要的点(更多信息见图片)。我已经为SQlite查询将这个区域划分为四个象限——如果它被接受为点选择,我只需要将手指放在其中一个象限中

我使用SQL语句来计算我是否点击了该点:

cursor=db.query("points_details2", null ,"(location_X <="+cXplus+" AND location_Y >="+cYminus+") OR (location_X >="+cXminus+" AND location_Y >="+cYminus+") OR (location_X <="+cXplus+" AND location_Y <="+cYplus+") OR (location_X >="+cXminus+" AND location_Y <="+cYplus+")", null, null, null, null);
                            Log.d("POINT", "Cursor "+cursor.getColumnName(0));
                cursor.moveToFirst();

                while (cursor.isAfterLast() == false) {
                    Log.d("POINT","data is: "+cursor.getInt(0)+", "+cursor.getString(1)+", "+cursor.getString(2)+", "+cursor.getDouble(3)+", "+cursor.getDouble(4));
                    cursor.moveToNext();
                }
                cursor.close();
这是边界5,坐标X和坐标Y是我用手指点击屏幕的坐标


问题是,我是否使用了糟糕的方法?我提供的这个SQL语句不起作用,我不知道为什么。有人能帮我解决这个问题吗?谢谢

它们都应该是
!您希望该点位于正方形的所有四个角内

i、 e


(location_X=“+cYminus+”)和(location_X>=“+cx减号+”和location_Y>=“+cYminus+”)和(location_X由于每侧有两条边界线,可以简化为:

"(location_X <="+cXplus+" AND location_X >="+cXminus+" AND location_Y >="+cYminus+" 
AND location_Y <="+cYplus")"
“(位置X=“+cx减号+”和位置Y>=”+cYminus+”

位置应该是
,不是吗?你不想让点位于正方形的所有四个角内吗?哦,老兄,非常感谢。我已经监督了这一点…做一个回答,我会把它标记为一个回答,还有一个问题,你知道如何制作圆边界而不是正方形吗?没有简单的方法。你必须测试你的点在每一个
dA
中,你的笛卡尔坐标是
(x_c+r*cos(A),y_c+r*sin(A))
,对于
0
(x_c,y_c)
是圆心。抄袭别人的答案被认为是不好的做法。
(location_X <="+cXplus+" AND location_Y >="+cYminus+") AND (location_X >="+cXminus+" AND location_Y >="+cYminus+") AND (location_X <="+cXplus+" AND location_Y <="+cYplus+") AND (location_X >="+cXminus+" AND location_Y <="+cYplus+")
"(location_X <="+cXplus+" AND location_X >="+cXminus+" AND location_Y >="+cYminus+" 
AND location_Y <="+cYplus")"