dromara / hutool

🍬A set of tools that keep Java sweet.
https://hutool.cn
Other
29.16k stars 7.52k forks source link

有没有封装根据两个经纬度计算他们之间直线距离的方法,搜了下没看到 #2759

Closed samho2008 closed 1 year ago

samho2008 commented 1 year ago

有没有封装根据两个经纬度计算他们之间直线距离的方法,搜了下没看到

CherryRum commented 1 year ago

暂时没有,这个算法太多了,更像业务上的实现,有些需要速度,有些需要准确度。 1.考虑速度精度次要考虑的一般使用
https://en.wikipedia.org/wiki/Haversine_formula 这个也是spatial4j这个java库的默认计算 美团之前也是这个 2.优先考虑精度的建议 使用 https://en.wikipedia.org/wiki/Vincenty's_formulae 这个代入的椭球模型 一个实现http://www.movable-type.co.uk/scripts/latlong-vincenty.html java 的话建议还是使用spatial4

由于都不是测绘或者地理相关专业的所以一直没有考虑这些方法。

注意,以上运算请在一个坐标系内,百度,高德不是一个参考系。

samho2008 commented 1 year ago
font{
    line-height: 1.6;
}
ul,ol{
    padding-left: 20px;
    list-style-position: inside;
}

感谢,也正是因为实现的办法太多了,所以才想着看看 Hutool 有没有封装好的,确实速度和准确度之间要有个权衡,感谢回复

                ***@***.***

---- 回复的原邮件 ----

     发件人 

        ***@***.***>

     发送日期 

    2022年11月26日 12:38

     收件人 

        ***@***.***>

     抄送人 

        ***@***.***>
        ,

        ***@***.***>

     主题 

          Re: [dromara/hutool] 有没有封装根据两个经纬度计算他们之间直线距离的方法,搜了下没看到 (Issue #2759)

暂时没有,这个算法太多了,更像业务上的实现,有些需要速度,有些需要准确度。 1.考虑速度精度次要考虑的一般使用 https://en.wikipedia.org/wiki/Haversine_formula 这个也是spatial4j这个java库的默认计算 美团之前也是这个 2.优先考虑精度的建议 使用 https://en.wikipedia.org/wiki/Vincenty's_formulae 这个代入的椭球模型 一个实现http://www.movable-type.co.uk/scripts/latlong-vincenty.html java 的话建议还是使用spatial4 由于都不是测绘或者地理相关专业的所以一直没有考虑这些方法。 注意,以上运算请在一个坐标系内,百度,高德不是一个参考系。

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***>

CherryRum commented 1 year ago

嗯呢,您可以看 https://tech.meituan.com/2014/09/05/lucene-distance.html 一般来说 Haversine_formula 足够了