2014-01-13 19 views
17

我正在開發一個農業用的Glebe樣本應用程序。在這種情況下,用戶可以通過點擊地圖來選擇一個Glebe,該地圖將根據抽頭的數量創建一個多邊形。我能夠創建該多邊形並能夠獲取多邊形的區域。但現在我需要把它分成相等的區域。如何在Google地圖上將不規則多邊形劃分爲相同的區域V2

例如,如果多邊形面積爲50平方公尺,那麼它將被劃分爲50平方米的面積。 Agri Precision App已完成相同的功能。查找下面的圖像。我需要將多邊形分割成下面的圖像,並顯示其中的點。

The polygon

爲獲得區,我使用Google Map Utilty Lib它的算法中也網格集羣。我想要像上面的圖像一樣。在上面的圖片中,他們每5公頃分割一塊區域。因爲所有面積都是85公頃,所以總分應該顯示爲17.這就是它的工作原理。

所以我的問題是:

如何根據地圖上的多邊形的面積,這樣我可以在地圖上繪製這些點,發現這些點?

+0

我看不到這17個孤立點和四邊形細分爲17個相同面積的瓷磚之間的連接。這個數字不是解決被查詢問題的方法,請提供一個更好的解釋。 –

+0

僅供參考,我已將該圖片。主要問題是劃分面積相等的多邊形。這就是我目前的實際需求。 – TheLittleNaruto

+0

對不起,但這個圖像是無關和誤導。 –

回答

3

glebes的形狀沒有任何限制,所以這裏有一個解決方案,通過構建一個星形分解來解決問題。它假設多邊形是凸的:

  • 任意選擇一個主頂點。

  • 通過依次加入主頂點的每一個邊,給人的地區A1A2A3三角形三角測量多邊形...

  • 開始圍繞多邊形之旅,從主頂點。如果第一個三角形大於所需區域(A1 > A),則沿邊緣找到該點,以便在所需區域的子三角形中細分三角形。繼續從這裏與其餘的子三角形(有區域A1-A)。否則,從所需區域減去第一個三角形的面積並繼續行程(A現在爲A-A1)。

這是非常相似的拆分的對實際線N間隔序列插入長度相等的間隔K

我的猜測是星形分解不適合你。

+0

感謝Yves,你的想法很好,我想知道的是如何實現與你所提到的算法相同的算法? – TheLittleNaruto

+0

所有你需要的是一個三角形面積的公式(http://en.wikipedia.org/wiki/Triangle#Using_coordinates)。要在給定區域的三角形中劃分三角形,只需以相同的比例分割邊緣(使用線段的參數方程)即可。 –

+0

@YvesDaoust你的答案相當不錯,但是如果你添加基本的方程和代碼來實現這個功能,那麼問題就會從哪裏開始。 –

3

如果您的多邊形是凸的,可以通過解決以下子問題來獲得解決方案:「給定區域A的凸多邊形,找到將其分割爲相應區域B和A-B的兩部分的水平線。

這很容易通過從頂部到底部用水平移動和計算覆蓋區域(這形成多邊形分解成梯形)來掃描頂點。在某一點上,您將超出面積B.通過當前和之前頂點之間的線性插值,您將確定水平的精確座標。

如下您將使用子問題的解決方案:

1)計算整數平方根,讓N,所需的片的數目,讓M.

2)切片多邊形Ñ次,每次獲取N個區塊的面積。將會有M-N^2個瓦片的剩餘部分。 3)使用垂直切片每個切片以切割最終的切片。

瓷磚將有一個更可接受的形狀(矩形,當他們不符合任何邊緣)。

+3

Ehm對於同一個問題有兩個答案?當然,你沒有得到編輯你的答案? – rekire

+0

這是兩個獨立的答案 –

相關問題