加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

如何在Mysql中有效利用经度/纬度值?

发布时间:2021-01-18 22:37:53 所属栏目:编程 来源:网络整理
导读:多亏了Wikileaks,在英国的英国我们此刻可以会见每个邮政编码wikileaks postcodes uk重要信息的经度和纬度坐标.请勿在民众应用措施中行使此数据-担忧数据已被存心粉碎,您也许会被视为违背版权法.实行行使来自Postcode UK site这样的开源网站的数据 此刻,可以

多亏了Wikileaks,在英国的英国我们此刻可以会见每个邮政编码wikileaks postcodes uk重要信息的经度和纬度坐标.请勿在民众应用措施中行使此数据-担忧数据已被存心粉碎,您也许会被视为违背版权法.实行行使来自Postcode UK site这样的开源网站的数据

此刻,可以行使以下计较来计较每个点之间的间隔(最初来自精细的Pro Mysql书):

The distance d between two points (x1,y1) and (x2,y2) can be calculated from the following equation (so long as x values are latitude and y values are longitude in radians,r is the radius of the sphere which is 3956 in miles):

d= acos(sin(x1)*sin(x2)+cos(x1)*cos(x2)*cos(y2-y1)) * r

此刻这已经足够好了,照旧应该行使新的GIS数据范例和成果,假如可以,怎样将经度和纬度引用转换为Point数据范例?我意识到,因为地球不是一个美满的球体,因此我在上面引用的间隔计较并不美满.可是对付我的目标来说已经足够了.行使新的GIS成果是否会a)使间隔的计较更快b)使间隔的计较更准确? 最佳谜底 专注于(a):

已往,我已经预先计较了部门,存储了lat,long,xaxis,yaxis和zxais,个中x,y& z界说为:

xaxis = cos(radians(Lat)) * cos(radians(Lon))
yaxis = cos(radians(Lat)) * sin(radians(Lon))
zaxis = sin(radians(Lat))

然后可以行使SQL宽松地计较间隔(譬喻,acos(xaxis * $xaxis yaxis * $yaxis zaxis * $zaxis)* 6367.0 / 1.852)(个中以$开头的那些工具以沟通的方法针对相干出发点举办了预先计较如上)

以这种方法举办的估量算将相对昂贵的触发推向一次变乱,并简化了查询.

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读