【发布时间】:2014-06-24 21:46:25
【问题描述】:
我有一些代码首先创建了一些 LatLng 对象,如下所示(仅一个示例):
LatLng turnOne = new LatLng(52.512657, 1.011376);
在 onLocationChanged 方法中,我想检查使用当前位置创建的 LatLng,如果它们相等,则执行某些操作(在我的情况下触发语音)。
我尝试了很多东西,例如:
-
从 Location 对象创建一个 LatLng。我确信这可能有效,但两个比较的 LatLng 对象必须是准确的吗?如果是这样,试图在没有阈值的情况下在移动中匹配它们似乎不太可能。
LatLng a = new LatLng(location.getLatitude(), location.getLongitude()); if(turnOne.equals(a)) { ttobj.speak("stuff", TextToSpeech.QUEUE_FLUSH, null); } -
从 LatLng 创建一个 Location 对象。我不确定为什么这不起作用。我正在比较两个 Location 对象并允许 10 米或更小的阈值(在道路上),但它似乎不起作用(我没有听到任何语音)。
Location loc1 = new Location(""); loc1.setLatitude(turnOne.latitude); loc1.setLongitude(turnOne.longitude); if(location.distanceTo(loc1) <= 10) { ttobj.speak("stuff", TextToSpeech.QUEUE_FLUSH, null); }
因此,我的问题是如何比较两个 LatLngs 并允许在跟踪中使用轻微的阈值(例如 5 米)或比较两个位置。
我唯一能找到接近这个问题的是Comparing two LatLng objects in google map v2 android,但它并没有完全帮助我。
【问题讨论】:
标签: android