以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- [求助] 求助算法~~~~~~~~~~~~~~~~~~~~ (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=57011)
|
-- 作者:qq121454970
-- 发布时间:2014/9/16 18:56:00
-- [求助] 求助算法~~~~~~~~~~~~~~~~~~~~
此主题相关图片如下:a.jpg

此主题相关图片如下:b.jpg

求助。。。。这个里程数是怎么算出来的?
[此贴子已经被作者于2014-9-16 18:55:52编辑过]
|
-- 作者:有点甜
-- 发布时间:2014/9/16 19:40:00
--
通过经纬求距离
Dim x1 As Double = 纬度1 Dim y1 As Double = 经度1 Dim x2 As Double = 纬度2 Dim y2 As Double = 经度2
Dim rad As Double = 6371 Dim p1X As Double = X1 / 180 * Math.PI Dim p1Y As Double = Y2 / 180 * Math.PI Dim p2X As Double = X2 / 180 * Math.PI Dim p2Y As Double = Y2 / 180 * Math.PI Dim result As Double = Math.Acos(Math.Sin(p1Y) * Math.Sin(p2Y) + Math.Cos(p1Y) * Math.Cos(p2Y) * Math.Cos(p2X - p1X)) * rad
|
-- 作者:qq121454970
-- 发布时间:2014/9/16 20:18:00
--
此主题相关图片如下:c.png
 哎,不太明白,答案好像不对
|
-- 作者:有点甜
-- 发布时间:2014/9/16 20:22:00
--
肯定有偏差, rad的值是地球的半径,越精确越准
|
-- 作者:有点甜
-- 发布时间:2014/9/16 20:50:00
--
抱歉,重新查了一下公司,要这样写!!!
Dim x1 As Double = 37.856862 Dim y1 As Double = 112.525760 Dim x2 As Double = 37.857587 Dim y2 As Double = 112.525683
Dim rad As Double = 6371 Dim p1X As Double = X1 / 180 * Math.PI Dim p1Y As Double = Y2 / 180 * Math.PI Dim p2X As Double = X2 / 180 * Math.PI Dim p2Y As Double = Y2 / 180 * Math.PI
Dim a As Double = p1X - p2X Dim b As Double = p1Y - p2Y Dim s As Double = 2 * Math.Asin(Math.Sqrt(Math.Pow(Math.Sin(a/2),2) + Math.Cos(p1X)*Math.Cos(p2X)*Math.Pow(Math.Sin(b/2),2))) * rad output.show(s)
|
-- 作者:qq121454970
-- 发布时间:2014/9/19 12:18:00
--
谢谢
|