从我当前的位置找到最近的朋友

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从我当前的位置找到最近的朋友相关的知识,希望对你有一定的参考价值。

我想找到我的朋友,从我当前位置的手机附近取出他们的位置。例如,在我下面的代码中,我有各种各样的城市,如果我把3,4个朋友的数量放在一起,那么我可以这样做吗?或者我可以做其他一些改变吗?可能吗?

// Get User's Coordinate from their Browser
window.onload = function () {
    // html5/W3C Geolocation
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(UserLocation);
    }
    // Default to Washington, DC
    else
        NearestCity(38.8951, -77.0367);
}

// Callback function for asynchronous call to HTML5 geolocation
function UserLocation(position) {
    NearestCity(position.coords.latitude, position.coords.longitude);
}


// Convert Degress to Radians
function Deg2Rad(deg) {
    return deg * Math.PI / 180;
}

function PythagorasEquirectangular(lat1, lon1, lat2, lon2) {
    lat1 = Deg2Rad(lat1);
    lat2 = Deg2Rad(lat2);
    lon1 = Deg2Rad(lon1);
    lon2 = Deg2Rad(lon2);
    var R = 6371; // km
    var x = (lon2 - lon1) * Math.cos((lat1 + lat2) / 2);
    var y = (lat2 - lat1);
    var d = Math.sqrt(x * x + y * y) * R;
    return d;
}

var lat = 20; // user's latitude
var lon = 40; // user's longitude

var cities = [
      ["city1", 10, 50, "blah"],
        ["city2", 40, 60, "blah"],
        ["city3", 25, 10, "blah"],
          ["city4", 5, 80, "blah"]
];

function NearestCity(latitude, longitude) {
    var mindif = 99999;
    var closest;

    for (index = 0; index < cities.length; ++index) {
        var dif = PythagorasEquirectangular(latitude, longitude, cities[index]
        [1], cities[index][2]);
        if (dif < mindif) {
            closest = index;
            mindif = dif;
        }
    }

    // echo the nearest city
    alert(cities[closest]);
}
答案

我建议将GeoFire用于此目的,它来自firebase并具有基于地理位置的查询,并且可以轻松地执行您想要的操作

以上是关于从我当前的位置找到最近的朋友的主要内容,如果未能解决你的问题,请参考以下文章

寻找我和朋友之间最近的距离[重复]

找到离我当前位置最近的标记

Android Navigation - 导航时弹出当前片段

如何从我的经纬度中找出最近的用户?

Android 使用两个不同的代码片段获取当前位置 NULL

如何从当前位置找到最近的经纬度?