如何ListView依照GPS距离排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何ListView依照GPS距离排序相关的知识,希望对你有一定的参考价值。

如何ListView中依照GPS距离排序?ListView中从现有资料库列出所有附近店家,取得目前位置计算GPS距离依照距离作排序??

参考技术A Cursor c = db.rawQuery( "SELECT * FROM "+TABLE, null ); ArrayList> arraylist=new ArrayList>(); while (c.moveToNext()) Double distance=DistanceOfTwoPoints(Lat,Lon,c.getDouble(4),c.getDouble(5)); hashmap=new HashMap(); hashmap.put("Stores",c.getString( 1 ));//(id,来源) hashmap.put("distance",distance);//读取距离变数 arraylist.add(hashmap);如果我程式码这样如何改成TreeMap中并排序? 参考技术B 问题关键不在ListView这里,而是从数据库列出来的时候,你的容器排序问题,建议使用treeSet集合,重写里面业务bean的hashcode方法和equals方法,然后就可以达到你的目的了

如何在Android中使用GPS服务

我正在开发与GPS相关的Android项目我还是Android的新手,所以我不太了解它。

我的项目是一个应用程序,它计算用户位置和指定的其他位置之间的距离,所以如果距离小于(X)说1KM应用程序将向用户发送通知。[[我知道如何计算之间的距离两个地点]]。

我的问题是:即使用户没有打开应用程序我怎么能这样做(我的意思是,无论如何我可以让应用程序关闭时应用程序计算背景中的距离)。所以我想要GPS功能在后台工作。

提前致谢。

答案

您可以将服务用于后台进程。

有关获取位置的问题,请尝试以下链接:

Best way to get user GPS location in background in Android

Get GPS location via a service in Android

另一答案

我对这个问题的解决方案很简单: -

您可以使用服务在后台工作(当活动未显示时)

检查一下:-Get GPS location via a service in Android

**如果您希望此服务永远运行,即使应用程序已关闭/终止,您也可以使用广播接收器**

另一答案

要让应用程序在后台运行,您需要了解服务。服务是一种使应用程序在后台运行的服务,例如gps,通知等等。

链接:https://developer.android.com/reference/android/app/Service.html

另一答案

用户services。它们易于使用且您只需要它们。

这是the documentation

服务是Android应用程序的另一个组件(如活动)。您需要在清单中定义服务。之后,您可以使用startService(意图)启动设备。如果您需要获取一些信息(与一项活动进行交流),您可以使用bindService而不是startService。 (还需要实现onBind)。

另一种解决方案是使用广播接收器发送数据。或者您可以在服务中简单地设置通知并使用它。

以上是关于如何ListView依照GPS距离排序的主要内容,如果未能解决你的问题,请参考以下文章

Mongoose Geo Near Search - 如何在给定距离内排序?

GPS已知首尾坐标 如何求距离

如何检查 ListView 项目是不是被选中

BlackBerry Cascades:如何将数据加载到 ListView

如何使用手机gps定位两点之间的直线距离?

如何计算两个GPS坐标点的距离?