如何使用jQuery或JavaScript将3个最近的位置返回到用户位置

时间:2016-03-10 09:09:02

标签: javascript jquery sqlite jquery-mobile

在我的移动应用中,我使用以下代码获得了用户地理位置。我还有附近城市的地理位置(纬度,经度)。我可以将城市的地理位置数据放在数组或SQLite数据库中。如何使用jQuery或JavaScript获取和显示位于用户位置附近的3个最近城市。我没有使用谷歌地图。

$(document).ready(function() {
    var Geo={};

    if (navigator.geolocation) {
       navigator.geolocation.getCurrentPosition(success, error);
    }

    //Get the latitude and the longitude;
    function success(position) {
        Geo.lat = position.coords.latitude;
        Geo.lng = position.coords.longitude;
    }

    function error(){
        console.log("Geocoder failed");
    }

    function populateHeader(lat, lng){
        $('#myPopup').append('<p>Lattitude: ' + lat);
        $('#myPopup').append('<br />Longitude: ' + lng + '</p>');
    }
});

由于

1 个答案:

答案 0 :(得分:0)

一个简单的谷歌搜索导致这个JavaScript代码计算两点之间的距离。

var R = 6371000; // metres
var φ1 = lat1.toRadians();
var φ2 = lat2.toRadians();
var Δφ = (lat2-lat1).toRadians();
var Δλ = (lon2-lon1).toRadians();

var a = Math.sin(Δφ/2) * Math.sin(Δφ/2) +
        Math.cos(φ1) * Math.cos(φ2) *
        Math.sin(Δλ/2) * Math.sin(Δλ/2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));

var d = R * c;

更多解释here。 您可能必须为每个城市和地理位置点找到d的值。