【发布时间】:2013-11-05 16:08:27
【问题描述】:
我有一个包含纬度和经度字段的数据库。
我会通过这个函数得到bd,并转换成一个数组。
ArrayList<PontoEntity> array = new ArrayList<PontoEntity>();
Cursor c = com.vianaturismo.db.DBMain.getAll(getApplicationContext(), DALPonto.TABLE_NAME, DALPonto.columns);
array = DALPonto.converte(c);
她还有这个功能可以返回我所在的位置和点之间的距离。
public double getDistancia(double latitude, double longitude, double latitudePto, double longitudePto){
double dlon, dlat, a, distancia;
dlon = longitudePto - longitude;
dlat = latitudePto - latitude;
a = Math.pow(Math.sin(dlat/2),2) + Math.cos(latitude) * Math.cos(latitudePto) * Math.pow(Math.sin(dlon/2),2);
distancia = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
return 6378140 * distancia; /* 6378140 is the radius of the Earth in meters*/
}
我在按距离对数组进行排序时遇到的困难。即按最近点排序。
【问题讨论】:
-
如果您的问题与数据排序有关,请参阅:stackoverflow.com/questions/19495642/…
标签: java android arrays google-maps