【问题标题】:Checking current location with location's which are stored in Sqlite Database使用存储在 Sqlite 数据库中的位置检查当前位置
【发布时间】:2015-07-27 05:26:27
【问题描述】:

每当我的当前位置与数据库中存储的位置匹配时,我都必须生成通知警报。 所以我使用 google places API 让用户键入位置,然后将其存储在数据库中,因此我必须编写一项服务来从 LocationListener 获取当前位置,然后如何检查存储在数据库中的位置?

谁能建议我如何检查? 借助位置文本与当前文本获取纬度和经度?

【问题讨论】:

  • 到目前为止您尝试过什么?这到底是什么问题。
  • 直到现在获取当前位置和在 autocompletetextview 中输入的位置存储在数据库中,但我很困惑哪种是使用 lat long 或直接文本检查来检查当前位置与存储位置的有益方法?
  • 您是否为此触发了 sql 查询?

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


【解决方案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-获取返回的布尔值

if(true) -&gt; //result(your code when stored location = current)

if(false) -&gt;// result(your code when stored location != current).

【讨论】:

  • 是的,我认为这是最好的方法,你能推荐我关于这个例子的任何演示吗,我很困惑怎么做?
  • 其实很简单,如果你使用的是谷歌地图API,你只需要写上面的代码;我真的不知道何时需要调用此方法,但可以说您需要在用户执行点击后调用它;然后进入 onClickListener 执行上面的代码,然后根据返回值 within500m 执行你的动作
  • 你好艾哈迈德阿尔萨尼!!如何获得与 distanceBetween() 方法匹配的经纬度。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-01-29
  • 2014-04-25
  • 2013-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-19
相关资源
最近更新 更多