1

OpenLayers で、次の形式のコードを使用して、2 つの LinearRing オブジェクトで構成されるポリゴンを作成します (これは Java+GWT にありますが、同じ原則が JS にも当てはまります)。

List<LinearRing> linearRingList = new ArrayList<LinearRing>();

List<Point> points1 = new ArrayList<Point>();
... populate points1 ...;
linearRingList.add(new LinearRing(points1.toArray(new Point[points.size()])));

List<Point> points2 = new ArrayList<Point>();
... populate points2 ...;
linearRingList.add(new LinearRing(points2.toArray(new Point[points.size()])));

Polygon poly = new Polygon(linearRingList.toArray(new LinearRing[linearRingList.size()]));
VectorFeature feature = new VectorFeature(poly);
myLayer.addFeature(feature);

このレイヤーを地図上に表示すると、points1 と points2 で定義されたポリゴンが重なっていると、穴が見えます。

ポリゴン ホール http://www.jackhollow.co.uk/misc/polygon.png

2 つのポリゴンの "xor" が表示されていますが、代わりにそれらの "or" を表示したいところです。つまり、真ん中の穴が緑色で塗りつぶされています。

どうすればいいですか?Openlayers の表示の問題だと確信していますが、それを制御するためのフラグがどこにも見つかりません。

元の 2 つのポリゴンは次のとおりです。

ポリゴン ホール http://www.jackhollow.co.uk/misc/polygon2.png

1 つのレイヤーに一緒に表示すると重なりますが、Openlayers は交差部分を塗りつぶしません。

4

1 に答える 1