根据坐标查500米范围内站点
生活随笔
收集整理的這篇文章主要介紹了
根据坐标查500米范围内站点
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1思路:查詢一個站點500米范圍內的其它站點。已知坐標。所以,首先想到的是,對每條記錄,去進行遍歷,跟數據庫中的每一個點進行距離計算,當距離小于500米時,認為匹配。效率低,速度慢
2思路:先過濾出大概的經緯度范圍再進行計算。先算出該點周圍的矩形的四個點,然后使用經緯度去直接匹配數據庫中的記錄。
思路:首先算出“給定坐標附近500米”這個范圍的坐標范圍。 雖然它是個圓,但我們可以先求出該圓的外接正方形,然后拿正方形的經緯度范圍去搜索數據庫。
//先計算查詢點的經緯度范圍lat已知緯度,lng已知經度 double r = 6371;//地球半徑千米 double dis = 0.5;//0.5千米距離 double dlng = 2*Math.asin(Math.sin(dis/(2*r))/Math.cos(lat*Math.PI/180)); dlng = dlng*180/Math.PI;//角度轉為弧度 double dlat = dis/r; dlat = dlat*180/Math.PI;?
最后,就可以得出四個點的坐標:
left-top : (lat + dlat, lng – dlng)
right-top : (lat + dlat, lng + dlng)
left-bottom : (lat – dlat, lng – dlng)
right-bottom: (lat – dlat, lng + dlng)
綜合也就是這樣進行篩選查詢
?
轉載于:https://www.cnblogs.com/Linger-wj/p/6519869.html
總結
以上是生活随笔為你收集整理的根据坐标查500米范围内站点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BG.Hive - part1
- 下一篇: Python-基础知识-控制流程和文件操