[英]Find all nearby customers within a given distance using longitude and latitude
我有一個包含客戶經度和緯度的數據庫,我有一個搜索表單,其中用戶將輸入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
引用。
使用半胱氨酸配方
用戶將具有當前位置,客戶位置和距離因此使用半正式公式計算使用當前位置和客戶位置的距離(d1)然后將計算的距離(d1)與所需距離進行比較。
邏輯是計算距離<=所需距離然后它表示當前客戶處於所需距離,否則客戶在徑向距離之外
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.