相关疑难解决方法(0)

使用SQL服务器的Haversine公式找到最近的场地--vb.net

我从表单中抓取一个邮政编码.然后,我可以将此邮政编码转换为lng,lat坐标,因为我将这些邮政编码存储在表格中.

SELECT lng, lat from postcodeLngLat WHERE postcode = 'CV1'

我有另一张桌子,存放着各种场地的lng,lat.

SELECT v.lat, v.lng, v.name, p.lat, p.lng, p.postcode, 'HAVERSINE' AS distance FROM venuepostcodes v, postcodeLngLat p WHERE p.outcode = 'CB6' ORDER BY distance

我想要做的是创建一个数据网格,显示每个场地与邮政编码的距离(在这种情况下为CV1).我知道Haversine公式应该做我想要实现的目标,但我已经迷失了我应该从哪里开始将它合并到我的查询中.我认为公式需要放在我'HAVERSINE'上面的查询中.

有任何想法吗?

编辑

SELECT o.outcode AS lead_postcode, v.venue_name, 6371.0E * ( 2.0E *asin(case when 1.0E < (sqrt(square(sin(((RADIANS(CAST(o.lat AS FLOAT)))-(RADIANS(CAST(v.lat AS FLOAT))))/2.0E)) + (cos(RADIANS(CAST(v.lat AS FLOAT))) * cos(RADIANS(CAST(o.lat AS FLOAT))) * square(sin(((RADIANS(CAST(o.lng AS FLOAT)))-(RADIANS(CAST(v.lng AS FLOAT))))/2.0E))))) then 1.0E else (sqrt(square(sin(((RADIANS(CAST(o.lat AS FLOAT)))-(RADIANS(CAST(v.lat AS FLOAT))))/2.0E)) + (cos(RADIANS(CAST(v.lat …

sql sql-server haversine

3
推荐指数
1
解决办法
3999
查看次数

标签 统计

haversine ×1

sql ×1

sql-server ×1