日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Neo4j:找到两个纬度/经度之间的中点

發(fā)布時間:2023/12/3 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Neo4j:找到两个纬度/经度之间的中点 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在過去的兩個周末中,我一直在處理一些運(yùn)輸數(shù)據(jù),并且我想運(yùn)行A *算法來查找兩個車站之間的最快路線。

A *算法將一個EstimateEvaluator作為其參數(shù)之一,然后該評估器查看節(jié)點的經(jīng)度/緯度,以確定一條路徑是否值得遵循。 因此,我需要為每個測站添加緯度/經(jīng)度,而且我很難找到數(shù)據(jù)集中所有點的定位日期。

幸運(yùn)的是,我傾向于在測站的兩側(cè)各有經(jīng)度/緯度兩點,因此我可以算出中點作為丟失點的近似值。

我找到了一篇文章,該文章定義了可以用來執(zhí)行此操作的公式 ,并且有一個StackOverflow帖子 ,其中包含一些實現(xiàn)該公式的Java代碼。

我想找到薩里碼頭(Surrey Quays)站(51.4931963543,-0.0475185810)和火車線上更南的點(51.47908,-0.05393950)之間的中點。 我編寫了以下Cypher查詢來計算這一點:

WITH 51.4931963543 AS lat1, -0.0475185810 AS lon1, 51.47908 AS lat2 , -0.05393950 AS lon2WITH radians(lat1) AS rlat1, radians(lon1) AS rlon1, radians(lat2) AS rlat2, radians(lon2) AS rlon2, radians(lon2 - lon1) AS dLonWITH rlat1, rlon1, rlat2, rlon2, cos(rlat2) * cos(dLon) AS Bx, cos(rlat2) * sin(dLon) AS ByWITH atan2(sin(rlat1) + sin(rlat2), sqrt( (cos(rlat1) + Bx) * (cos(rlat1) + Bx) + By * By )) AS lat3,rlon1 + atan2(By, cos(rlat1) + Bx) AS lon3RETURN degrees(lat3) AS midLat, degrees(lon3) AS midLon╒═════════════════╤═════════════════════╕ │midLat │midLon │ ╞═════════════════╪═════════════════════╡ │51.48613822097523│-0.050729537454086385│ └─────────────────┴─────────────────────┘

右側(cè)的Google Maps屏幕截圖顯示了頂部和底部的初始點以及中間的中間點。 這并不完美; 理想情況下,我希望中點在軌道上,但是對于算法而言,我認(rèn)為這已經(jīng)足夠了。

現(xiàn)在,我需要填寫無位置站的經(jīng)緯度!

翻譯自: https://www.javacodegeeks.com/2016/11/neo4j-find-midpoint-two-latlongs.html

總結(jié)

以上是生活随笔為你收集整理的Neo4j:找到两个纬度/经度之间的中点的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。