我知道有很多像我的問的問題。我看着他們,但我似乎無法解決問題。我在數學上只是不好:s。檢查經度和緯度時發生無效的浮點操作
在c#中我使用SqlQuery來獲取範圍內的城市。除了一些城市,大部分時間都適用。
例如,如果我用城市郵政編碼2060詢問城市的附近城市,我得到這個錯誤。當我問它的城市代碼2000,它返回2000年和2060
- 2060:緯度 = 51.2293515000 龍 = 4.4279883000
- 2000:緯度 = 51.2198771000 龍 = 4.4011356000
這是查詢:
return base.Database.Database.SqlQuery<City>(
"SELECT * FROM [dbo].[City] WHERE @p0 >= (((acos(sin((@p1*pi()/180)) *
sin(([Latitude]*pi()/180))+cos((@p1*pi()/180)) * cos(([Latitude]*pi()/180)) *
cos(((@p2- [Longitude])*pi()/180))))*180/pi())*60*1.1515*1.609344)"
, radius, latitude, longitude);
有人可以解釋如何改變它,所以它適用於所有的「城市」,以及如果這個數學noob的錯誤的原因呢?
謝謝
請格式化代碼。 –
Sry,試圖添加段落,但它只是顯示了p標籤。 –