使用经度和纬度查找给定距离内的所有附近客户,用户将输入log/lat,距离下拉列表包含50英里,100英里,....当用户点击搜索时,我想编写一个linq查询来从具有此距离半径的数据库中获取所有客户。我如何使用C#和linq执行此操作?更新:我发现这个https://stackoverflow.com/a/1654365/20126但这给出了一个正方形而不是半径我对类似问题的回答略有修改://radius是以米为单位的距离varcenter=newGeoCoordinate(纬度、经度);varresult=customers.Select(x=>newGeoCoordinate(x.Latitude,x.Longitude)).Where(x=>x.GetDistanceTo(center)您需要添加对System.Device.dll引用的引用。使用hasrsine公式用户将有当前位置,客户位置和距离所以使用半形式公式使用当前位置和客户位置计算距离(d1)然后将计算出的距离(d1)与所需距离进行比较逻辑它是计算距离<=所需distance则表示当前客户在要求的距离内,否则客户在径向距离外。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注——-本文收集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除,如需转载请注明出处:
