簡化相鄰多邊形,是簡化演算法對多個物件的操作。如果只是簡單的迭代呼叫演算法,效果如下圖3,
需求效果應該是圖2
圖1.待簡化圖層
圖2. 需求效果
圖3. 無拓撲效果
解決方案:
1.將多邊形抽取成線,除去重複邊,構造只有一條線的linework或者叫coverage,對其進行簡化。
2.將這些線構造多邊形,可以使用jts的polygonize方法
屬性傳遞:
實現原始多邊形和簡化多邊形屬性的傳遞,兩種方法:
1.標記乙個點,以原始多邊形中的department code作為該點,應該是centroid之類的點,
簡化後,根據判斷點是否在簡化多邊形內傳遞屬性。有錯誤,對凹多邊形,點不在內部
2.根據前後多邊形面積的重疊率,如大於0.5的傳遞屬性
求任意多邊形面積(凹多邊形和凸多邊形)
遇到問題 已知多邊形的各個左邊點,要求多邊形的面積 然後我搜尋了下看到這篇文章 這個人說的不多,但是簡單明瞭 首先已知各定點的座標分別為 x1,y1 x2,y2 x3,y3 xn,yn 則該多邊形的面積公式為 s 1 2 x1 y2 x2 y1 x2 y3 x3 y2 xk yk 1 xk 1 yk...
驗證多邊形是否為凸多邊形
驗證多邊形是否為凸多邊形 2108 shape of hdu include define debug 0 int crossmulti int x0,int y0,int x1,int y1,int x2,int y2 int main int n,i int f x,f y 第1個點 int s...
多邊形面積
點積 a b x1 x2 y1 y2 a b cos 點積的結果是乙個數值 叉積 a b x1 y2 x2 y1 a b sin 叉積的結果也是乙個向量,是垂直於向量a,b所形成的平面,如果看成三維座標的話是在 z 軸上,上面結果是它的模。三角形的面積 向量a和 向量b的叉積的絕對值表示 以 向量a...