每当我的当前位置与存储在数据库中的位置匹配时,我都必须生成通知警报。 所以我使用谷歌地方API为用户键入位置,然后它存储在数据库中,所以我必须写一个服务从LocationListener获取当前位置,然后我如何检查存储在数据库中的位置?
任何人都可以建议我如何检查? 在位置文本的帮助下,当前文本或获取纬度和经度?
答案 0 :(得分:1)
这里可以使用许多方法,但在每个方法中,比较应该取决于latitude and longitude
(至少我在类似情况下使用的方法)。
您确定无法将latitude and longitude
的确切值与另一个存储的latitude and longitude
进行比较;这在逻辑上是错误的,几乎不可能发生。
更好的方法是:
1 - 围绕存储的位置(lat,lng)
创建一个虚拟圈。
这里的圆圈仅用于演示目的,您需要在代码中使用:
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)
。