鍍金池/ 問答/PHP/ PHP如何通過坐標(biāo)計算不規(guī)則圖形的面積

PHP如何通過坐標(biāo)計算不規(guī)則圖形的面積

現(xiàn)在有一個需求是通過坐標(biāo)計算圖形的面積,現(xiàn)在知道圖形每個點的經(jīng)緯度坐標(biāo),用的是百度坐標(biāo),請問如何計算出面積?
圖片描述

回答
編輯回答
卟乖

不考慮內(nèi)在算法的話,可以嘗試用postgis。它是PostgreSQL的一個增強插件,里面可以輕易以特定的坐標(biāo)類別存儲數(shù)據(jù),查詢面積距離等地理要素結(jié)果。缺點是要和數(shù)據(jù)庫進(jìn)行一次通信。

考慮直接用源語言(比如php)實現(xiàn)的話,可以考慮先了解一下一個叫Shoelace的公式。這個是根據(jù)坐標(biāo)離散計算多邊形。如果所選多邊形非凸會有問題。

考慮其他實現(xiàn)算法的話面積計算有多種方式,可以是迭代切分成小三角形通過矢量計算,或者近似替代計算。后者的話是用一個單位正方形來模擬你要求的不規(guī)則多邊形,其中沒覆蓋全的用半個單位正方形替代,得到一個近似的由很多個單位正方形組成的圖像,再用單位正方形個數(shù)*單位面積得到。

2017年4月11日 18:52
編輯回答
陪她鬧

你上學(xué)的時候干嘛了,這個要先根據(jù)坐標(biāo)先分解成長方形和三角形,然后算出面積再相加,這問題小學(xué)生都會,莫非這種連曲線都沒有的東西你想用微積分?

順便說下,百度地圖本來就可以計算覆蓋面面積,完全不需要你自己計算,你算出來的不準(zhǔn)就算了,單位也得根據(jù)比例尺換算

https://blog.csdn.net/chengua...
看看這個

2017年11月11日 02:34