首頁  >  文章  >  後端開發  >  javascript - 資料庫裡保存了許多地塊,每個地塊的區域由四個頂點的經緯度決定,請問已知一個點的經緯度,如何確定該位置是屬於哪個地塊的?

javascript - 資料庫裡保存了許多地塊,每個地塊的區域由四個頂點的經緯度決定,請問已知一個點的經緯度,如何確定該位置是屬於哪個地塊的?

WBOY
WBOY原創
2016-10-10 11:55:551250瀏覽

求各位給一個思路~

回覆內容:

求各位給一個思路~

修正一下需求,po主的需求是【地理圍籬】

解決方案:
PostGis+PostGreSQL
ElasticSearch/Solr

僅靠MySQL怕是不行。
或是重新設計庫

place_id name
1 區塊1
id place_id lat lng
1 1 1.1111 1.1111
2 1 1.1111 1.1111
3 1 1.1111 1.1111
4 1 1.1111 1.1111

參考資料:http://www.cnblogs.com/LBSer/...

你這貌似是個純數學問題,要說思路,你可以用四個小三角形T1-T4把四邊形補全成舉矩形R,現在不方便畫圖,你自己想像一下。然後判斷給出點p

<code>p 在 R 内   &&   p 不在 {T1-T4} 内</code>

定義一個點物件:P[x,y] , x是緯度,y是經度
地塊的區域四個頂點是:A[x,y] ,B[x,y] ,C[x,y] ,D[x,y]
已知點就是:ptr[x,y]


呃~~
你還是給幾個樣本吧~
不然,還要向你科普地理知識,就太羅嗦了~

使用mysql空間函數和操作, 保存就直接保存一個多邊形區域, 判斷的時候使用ST_Contains函數

使用 POINT, ST_AsText, POLYGON, ST_X, ST_Y, ST_DISTANCE, 這些比直接保存經緯好很多.

http://dev.mysql.com/doc/refm...

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn