-1

我有一个SQLite存储latitudelongitude. 我必须找出用户当前位置是否在LatitudeLongitude(存储在数据库中)之间。

我一直在寻找解决此问题的方法,但无法解决。其中大部分与距离计算有关。

如何找到当前位置(在应用程序中获得)在Latitude和之间Longitude(存储在 SQLite 数据库中)?

4

2 回答 2

1

我不确定你是否真的想要,但我想什么

你有什么:两个地理点(两对姿态和经度)

你想要什么:计算两个地理点之间覆盖的相邻区域,并检查用户是否在其中

为此,您可以做的是:

1:假设这两个点是一个圆的直径端点,并搜索用户是否在这个圆内,比如这个图片

在此处输入图像描述

这种方法可能会让你搜索一个无关紧要的区域

2:假设这两个点是一条直线的两端,考虑两边的距离,比如50公里,像这样搜索从A点到B点100公里宽的带状图像

在此处输入图像描述

于 2013-10-18T11:18:03.567 回答
1

假设您有两个位置 a 和 b 以及您当前的位置 c。

   C  
  / \  
 A---B

您可以使用点积来计算 c 是否介于 a 和 b 之间:

如果两个向量的点积>0,则这些向量之间的度数<90°。

知道你需要两个这样的计算:

if(Vector(AB) * Vector(AC) > 0 && Vector(BC) * Vector(BA) > 0)
    // your location is between

您也可以在这里这里查看更多详细信息。

于 2013-10-18T11:29:03.970 回答