Estately.comで得られる効果と同様に、Googleマップに「ネガティブ」オーバーレイを実装しようとしています。基本的に、収集したKMLデータからマッピングポリゴンを正常に作成できました。複数のパスがある場合、それらはうまく作成されます。
したがって、私が持っている例をモデル化するために、最初に、polygonCoords(LatLngオブジェクトの配列の配列)から自分の領域の周りに一連のpolyLineを作成します。
for (var d = 0 ; d < polygonCoords.length ; d++)
{
var b = new google.maps.Polyline( {
path: polygonCoords[d],
strokeWeight: 4,
strokeColor: "#4F6D8F",
strokeOpacity: 1,
map: map
});
}
次のように定義された「ネガティブスペース」ポリゴンがあります。
function negativeSpaceBoundary()
{
return [new google.maps.LatLng(10, -170),
new google.maps.LatLng(10, -50),
new google.maps.LatLng(80, -50),
new google.maps.LatLng(80, -170),
new google.maps.LatLng(10, -170)]
};
そこで、その負のスペースポリゴンをpolygonCoords配列にシフト解除し、ポリゴンを描画しようとします。
negativeSpace = new google.maps.Polygon( {
path: polygonCoords,
strokeWeight: 0,
strokeOpacity: 1,
strokeColor: "#4F6D8F",
fillColor: "#000000",
fillOpacity: 0.2,
clickable: false,
map: map
});
基本的に、私が望んでいるのは、最初のpolyLineのセットが負のスペースポリゴンに「穴を開ける」ことです。そのため、基本的に都市の境界を覆うオーバーレイはありません。Estately.comにアクセスし、「アリゾナ州パラダイスバレー」を検索すると、効果を確認できます。
いくつかのバリエーション(ポリゴンとポリライン、塗りつぶしの色と不透明度の違いなど)を試しましたが、サンプルに表示されている効果は得られません。
何か案は?ところで、v3APIを使用します。
ありがとう、アンディ