如何在Google Maps API v2 for Android上计算标记与折线之间的距离?

时间:2014-09-24 17:08:47

标签: android api google-maps distance

我是Android开发和Google Maps API的新手,所以我想知道如何计算标记和Polilyne路径之间的距离。

为了给你一个想法,应用程序必须基本上告诉用户哪个Polilyne路径(那里有10个)更靠近用户在地图上设置的标记。

2 个答案:

答案 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);
}

此功能可用于测量两点之间的距离,可返回公制或英制单位。 只是尝试迭代折线的点和折线点与折线的最近点之间的最小距离,标记将是距离。 (或者你可以使用平均值)