我正在尝试在我的谷歌地图上实现“负面”叠加,类似于您在 Estately.com 上获得的效果。基本上,我已经成功地根据我收集的 KML 数据绘制了映射多边形。当有多个路径时,它们绘制得很好。
因此,对我的示例进行建模,首先我从 polygonCoords (这是一个 LatLng 对象数组的数组)围绕我的区域创建一组折线:
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
});
基本上,我希望会发生的是我最初的一组折线将在负空间多边形中“打一个洞”,这样基本上没有覆盖我的城市边界。如果你去restately.com,搜索“Paradise Valley, AZ”,你可以看到效果。
我尝试了几种变体(多边形与折线,不同的填充颜色和不透明度等),但没有达到我的示例中显示的效果。
有任何想法吗?顺便说一句,使用 v3 API。
谢谢,安迪