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

How to return 3 closest locations from to users location using jQuery or JavaScript

本文关键字:位置 返回 3个 最近 用户 何使用 jQuery JavaScript      更新时间:2023-09-26

在我的移动应用程序中,我使用以下代码让用户进行地理位置。我还有一个附近城市的地理定位(纬度,经度)。我可以将城市的地理位置数据放在数组或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>');
    }
});

谢谢

一个简单的谷歌搜索产生了这个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;

更多解释在这里。您可能需要查找每个城市和地理位置点的d值。