我遇到了在地图上绘制点并使点内部透明的问题。如果形状没有重叠点,它可以很好地工作,但正如您在本例中所见,有一个三角形和一个正方形,它们重叠,只有一个形状将fillOpacity
设置为0 ..
我正在使用的代码是:
MapPoll.prototype._redrawBoundaries = function () {
var allWorld = [
new google.maps.LatLng(85, 180),
new google.maps.LatLng(85, 90),
new google.maps.LatLng(85, 0),
new google.maps.LatLng(85, -90),
new google.maps.LatLng(85, -180),
new google.maps.LatLng(0, -180),
new google.maps.LatLng(-85, -180),
new google.maps.LatLng(-85, -90),
new google.maps.LatLng(-85, 0),
new google.maps.LatLng(-85, 90),
new google.maps.LatLng(-85, 180),
new google.maps.LatLng(0, 180),
new google.maps.LatLng(85, 180)
];
this.map.data.setStyle({
cursor: "not-allowed",
fillColor: "#000000",
fillOpacity: this._showBoundaries ? 0.25 : 0,
strokeWeight: 1
});
if (this._boundaries.length > 0) {
this._boundariesPolygon = new google.maps.Polygon({ paths: this._boundaries });
console.log(this._boundaries)
this.map.data.add({
geometry: new google.maps.Data.Polygon([allWorld, this._boundaries])
});
}
else {
this._boundariesPolygon = null;
}
};
和this._boundaries
是一个如下所示的点列表:
0: {lat: 36.032487228417146, lng: -78.83335640047085}
1: {lat: 36.036929334756095, lng: -78.88279487703335}
2: {lat: 36.24542550544885, lng: -78.84983589265835}
3: {lat: 35.66738312535577, lng: -78.85532905672085}
4: {lat: 35.63167328632597, lng: -78.27854683015835}
5: {lat: 36.010272939034245, lng: -78.21262886140835}
6: {lat: 36.041371190553185, lng: -78.84983589265835}
有谁知道为什么会这样?这真的令人沮丧,似乎它应该工作!谢谢:))