C# 计算一个位置到多个其他位置的距离

C# 计算一个位置到多个其他位置的距离,c#,php,math,geolocation,proximity,C#,Php,Math,Geolocation,Proximity,我有一个包含经纬度列表的数据库 -DeviceName -Latitude -Longitude 给定我当前设备的纬度和经度,我希望获得数据库列表中距离/接近X公里的所有设备 如何计算我所在位置与其他位置的距离?我想你应该看看这个。它将告诉您如何使用(并解释如何获得额外积分!)计算地球表面的距离,计算曲线图,以及如何避免数据库查询中的一些常见错误等。他的数据集与您的数据集非常接近-项目、经度和纬度。如果您需要原始代码,这将有助于您: private static Double rad2deg(

我有一个包含经纬度列表的数据库

-DeviceName
-Latitude
-Longitude
给定我当前设备的纬度和经度,我希望获得数据库列表中距离/接近X公里的所有设备


如何计算我所在位置与其他位置的距离?

我想你应该看看这个。它将告诉您如何使用(并解释如何获得额外积分!)计算地球表面的距离,计算曲线图,以及如何避免数据库查询中的一些常见错误等。他的数据集与您的数据集非常接近-项目、经度和纬度。

如果您需要原始代码,这将有助于您:

private static Double rad2deg(Double rad) {
    return (rad / Math.PI * 180.0);
}

private static Double deg2rad(Double deg) {
    return (deg * Math.PI / 180.0);
}

private const Double kEarthRadiusKms = 6376.5;

private static Double CalculateDistance(Double latitude1, Double longitude1, Double latitude2, Double longitude2) {
    double theta = longitude1 - longitude2;
    double dist = Math.Sin(deg2rad(latitude1)) * Math.Sin(deg2rad(latitude2)) + Math.Cos(deg2rad(latitude1)) * Math.Cos(deg2rad(latitude2)) * Math.Cos(deg2rad(theta));
    dist = Math.Acos(dist);
    dist = rad2deg(dist);
    dist = dist * 60 * 1.1515;
    dist = dist * 1.609344;
    return (dist);
}

你想做一个SQL查询吗?是的,我想做一个SQL查询