Csharp/C#教程:使用经度和纬度查找给定距离内的所有附近客户分享


使用经度和纬度查找给定距离内的所有附近客户

我有一个包含客户经度和纬度的数据库,我有一个搜索表单,用户将输入log / lat和距离下拉列表包含50英里,100英里,….当用户点击搜索时我想写一个linq查询到从这个距离半径的db中获取所有客户。 如何使用C#和linq进行此操作?

更新:
我找到了这个https://stackoverflow.com/a/1654365/20126,但这给出了一个方形而不是半径

我对类似问题的回答稍作修改:

// radius is the distance in meters var center = new GeoCoordinate(latitude, longitude); var result = customers.Select(x => new GeoCoordinate(x.Latitude, x.Longitude)) .Where(x => x.GetDistanceTo(center) < radius); 

您需要添加对System.Device.dll引用。

使用hasrsine配方

用户将具有当前位置,客户位置和距离因此使用半正式公式计算使用当前位置和客户位置的距离(d1)然后将计算的距离(d1)与所需距离进行比较。

逻辑是计算距离<=所需距离然后它表示当前客户处于所需距离,否则客户在径向距离之外

上述就是C#学习教程:使用经度和纬度查找给定距离内的所有附近客户分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注---计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1034009.html

(0)
上一篇 2022年1月18日
下一篇 2022年1月18日

精彩推荐