我正在做一个项目,我需要在Android的谷歌地图上找到当前位置最近的10个标记。 是否有任何API或内置函数/类显示这些东西? 我对Android中的Google地图知之甚少。
我需要在google地图上找到10个最接近标记的地方,并在我的列表视图中找到它的lat long和title ...
Plz Plz帮助我。!
答案 0 :(得分:4)
您需要使用以下方法来查找两个地理点之间的距离。
/**
*
* @param lat1 Latitude of the First Location
* @param lng1 Logitude of the First Location
* @param lat2 Latitude of the Second Location
* @param lng2 Longitude of the Second Location
* @return distance between two lat-lon in float format
*/
public static float distFrom (float lat1, float lng1, float lat2, float lng2 )
{
double earthRadius = 3958.75;
double dLat = Math.toRadians(lat2-lat1);
double dLng = Math.toRadians(lng2-lng1);
double a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)) *
Math.sin(dLng/2) * Math.sin(dLng/2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
double dist = earthRadius * c;
int meterConversion = 1609;
return new Float(dist * meterConversion).floatValue();
}
此处您的第一个地理代码将是您当前位置的地理位置代码,其他地理位置是您要与之比较的地理位置,您需要为其运行循环。
答案 1 :(得分:1)
我不相信有一个内置函数可以按照您描述的方式检索附近的标记,但您应该能够通过计算每个标记的距离并对结果进行排序来构建自己的标记。