使用存储在Sqlite数据库中的位置检查当前位置

时间:2015-07-27 05:26:28

标签: android sqlite android-fragments android-intent android-activity

每当我的当前位置与存储在数据库中的位置匹配时,我都必须生成通知警报。 所以我使用谷歌地方API为用户键入位置,然后它存储在数据库中,所以我必须写一个服务从LocationListener获取当前位置,然后我如何检查存储在数据库中的位置?

任何人都可以建议我如何检查? 在位置文本的帮助下,当前文本获取纬度和经度?

1 个答案:

答案 0 :(得分:1)

这里可以使用许多方法,但在每个方法中,比较应该取决于latitude and longitude(至少我在类似情况下使用的方法)。

您确定无法将latitude and longitude的确切值与另一个存储的latitude and longitude进行比较;这在逻辑上是错误的,几乎不可能发生。

更好的方法是:

1 - 围绕存储的位置(lat,lng)创建一个虚拟圈。

enter image description here

这里的圆圈仅用于演示目的,您需要在代码中使用:

Location.distanceBetween()方法。

假设你需要在500米内比较代码看起来像这样:

float[] results = new float[1];
Location.distanceBetween(storedLatitude, storedLongitude, currentLatitude, currentLongitude, results);
float distanceInMeters = results[0];
boolean within500m = distanceInMeters < 500;

2-get return boolean

if(true) -> //result(your code when stored location = current)

if(false) ->// result(your code when stored location != current)