我是Android开发和Google Maps API的新手,所以我想知道如何计算标记和Polilyne路径之间的距离。
为了给你一个想法,应用程序必须基本上告诉用户哪个Polilyne路径(那里有10个)更靠近用户在地图上设置的标记。
答案 0 :(得分:0)
有许多算法可以找到从当前位置到折线或多边形的最短距离。您可以找到@ https://stackoverflow.com/a/7803519
答案 1 :(得分:0)
private double distance(double lat1, double lon1, double lat2, double lon2, char unit)
{
double theta = lon1 - lon2;
double dist = Math.sin(deg2rad(lat1)) * Math.sin(deg2rad(lat2)) + Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) * Math.cos(deg2rad(theta));
dist = Math.acos(dist);
dist = rad2deg(dist);
dist = dist * 60 * 1.1515;
if (unit == 'K') {
dist = dist * 1.609344;
} else if (unit == 'N') {
dist = dist * 0.8684;
}
return (dist);
}
此功能可用于测量两点之间的距离,可返回公制或英制单位。 只是尝试迭代折线的点和折线点与折线的最近点之间的最小距离,标记将是距离。 (或者你可以使用平均值)